diff --git a/lib/svgo.js b/lib/svgo.js index 8c5ca130f..c19c0a402 100644 --- a/lib/svgo.js +++ b/lib/svgo.js @@ -65,12 +65,20 @@ const optimize = (input, config) => { info.multipassCount = i; const ast = parseSvg(input, config.path); const plugins = config.plugins || ['preset-default']; - if (Array.isArray(plugins) === false) { + if (!Array.isArray(plugins)) { throw Error( - "Invalid plugins list. Provided 'plugins' in config should be an array." + 'malformed config, `plugins` property must be an array.\nSee more info here: https://github.com/svg/svgo#configuration' + ); + } + const resolvedPlugins = plugins + .filter((plugin) => plugin != null) + .map(resolvePluginConfig); + + if (resolvedPlugins.length < plugins.length) { + console.warn( + 'Warning: plugins list includes null or undefined elements, these will be ignored.' ); } - const resolvedPlugins = plugins.map(resolvePluginConfig); const globalOverrides = {}; if (config.floatPrecision != null) { globalOverrides.floatPrecision = config.floatPrecision;