diff --git a/README.md b/README.md index e79ea49..9c274af 100644 --- a/README.md +++ b/README.md @@ -133,7 +133,7 @@ minify: # Retain comments removeComments: false # Do not remove unused ID attributes - cleanupIDs: false + cleanupIds: false ``` - For more options, see [svgo](https://github.com/svg/svgo). - **globOptions** - See [globbing](#globbing) section. diff --git a/lib/filter.js b/lib/filter.js index dd2d2d5..ac09d71 100644 --- a/lib/filter.js +++ b/lib/filter.js @@ -152,12 +152,12 @@ function minifySvg () { assetPath.on('data', (chunk) => (assetTxt += chunk)) assetPath.on('end', async () => { if (assetTxt.length) { - const { data, error } = svgOptimize(assetTxt, { ...options, plugins }) - if (data) { + try { + const { data } = svgOptimize(assetTxt, { ...options, plugins }) if (verbose) logFn.call(this, assetTxt, data, path, 'svg') resolve(route.set(path, data)) - } else if (error) { - reject(new Error(`Path: ${path}\n${error}`)) + } catch (err) { + reject(new Error(`Path: ${path}\n${err}`)) } } resolve() diff --git a/package.json b/package.json index 90043aa..28e794e 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,7 @@ "html-minifier": "^4.0.0", "micromatch": "^4.0.2", "minify-xml": "^3.2.0", - "svgo": "^2.4.0", + "svgo": "^3.0.0", "terser": "^5.3.0" }, "devDependencies": { diff --git a/test/svg.test.js b/test/svg.test.js index 9a4b2ea..83c2866 100644 --- a/test/svg.test.js +++ b/test/svg.test.js @@ -71,7 +71,7 @@ describe('svg', () => { test('option', async () => { const customOpt = { - cleanupIDs: false + cleanupIds: false } hexo.config.minify.svg.plugins = customOpt plugins = [{ @@ -117,10 +117,14 @@ describe('svg', () => { const input = '{}' hexo.route.set(path, input) - const { error } = svgOptimize(input, { plugins }) - - expect(error).toBeDefined() - await expect(s()).rejects.toThrow(`Path: ${path}\n${error}`) + let expected + try { + svgOptimize(input, { plugins }) + } catch (err) { + expected = err + } + expect(expected).toBeDefined() + await expect(s()).rejects.toThrow(`Path: ${path}\n${expected}`) }) test('include - exclude *.min.svg by default', async () => {