Hi
My boilerplate depends on gulp-imagemin ^4.1.0. when I run the task to minify svg, it throws an error
events.js:183
throw er; // Unhandled 'error' event
^
TypeError: Cannot read property 'path' of undefined
at optimizeOnceCallback (d:\dev\test\node_modules\svgo\lib\svgo.js:48:29)
at d:\dev\test\node_modules\svgo\lib\svgo.js:70:9
at SAXParser.sax.onend (d:\dev\test\node_modules\svgo\lib\svgo\svg2js.js:169:13)
at emit (d:\dev\test\node_modules\sax\lib\sax.js:624:35)
at end (d:\dev\test\node_modules\sax\lib\sax.js:667:5)
at SAXParser.write (d:\dev\test\node_modules\sax\lib\sax.js:975:14)
at SAXParser.close (d:\dev\test\node_modules\sax\lib\sax.js:157:38)
at module.exports (d:\dev\test\node_modules\svgo\lib\svgo\svg2js.js:182:28)
at SVGO._optimizeOnce (d:\dev\test\node_modules\svgo\lib\svgo.js:62:5)
at optimizeOnceCallback (d:\dev\test\node_modules\svgo\lib\svgo.js:43:26)
at d:\dev\test\node_modules\svgo\lib\svgo.js:70:9
at SAXParser.sax.onend (d:\dev\test\node_modules\svgo\lib\svgo\svg2js.js:169:13)
at emit (d:\dev\test\node_modules\sax\lib\sax.js:624:35)
at end (d:\dev\test\node_modules\sax\lib\sax.js:667:5)
at SAXParser.write (d:\dev\test\node_modules\sax\lib\sax.js:975:14)
at SAXParser.close (d:\dev\test\node_modules\sax\lib\sax.js:157:38)
To replicate (using my boilerplate)
npm i -g yo gulp yarn)npm i -g [email protected])gulp imagemin)Notes:
use gulp-imagemin v4.1.0
gulp-imagemin optional dependency is imagemin-svgo ^6.0.0
imagemin-svgo 6.0.0 dependecy is svgo ^1.0.0
which installs svgo ^1.0.0 (at the time of writing it install 1.1.0)
it breaks on svgo version 1.1.0. It's ok for version 1.0.5
I'm having the same issue.
Here's a temporary fix:
open svgo.js, comment out line 48-50, if (info.path) { svgjs.path = info.path}
Is it possible to check the info variable before calling info.path? If it's undefined, info.path may throw an error
This error occurs whenever svgo.optimize is called like this:
svgo.optimize(svgData)
instead of like this:
svgo.optimize(svgData, {path: svgFilepath})
Same issue +1
TypeError: Cannot read property 'path' of undefined
at optimizeOnceCallback (/home/chenzhuo/repos/activityengine/node_modules/svgo/lib/svgo.js:48:29)
at /home/chenzhuo/repos/activityengine/node_modules/svgo/lib/svgo.js:70:9
at SAXParser.sax.onend (/home/chenzhuo/repos/activityengine/node_modules/svgo/lib/svgo/svg2js.js:169:13)
at emit (/home/chenzhuo/repos/activityengine/node_modules/sax/lib/sax.js:624:35)
at end (/home/chenzhuo/repos/activityengine/node_modules/sax/lib/sax.js:667:5)
at SAXParser.write (/home/chenzhuo/repos/activityengine/node_modules/sax/lib/sax.js:975:14)
at SAXParser.close (/home/chenzhuo/repos/activityengine/node_modules/sax/lib/sax.js:157:38)
at module.exports (/home/chenzhuo/repos/activityengine/node_modules/svgo/lib/svgo/svg2js.js:182:28)
at SVGO._optimizeOnce (/home/chenzhuo/repos/activityengine/node_modules/svgo/lib/svgo.js:62:5)
at Promise (/home/chenzhuo/repos/activityengine/node_modules/svgo/lib/svgo.js:55:14)
at new Promise (<anonymous>)
at SVGO.optimize (/home/chenzhuo/repos/activityengine/node_modules/svgo/lib/svgo.js:25:12)
at decl.value.walk.node (/home/chenzhuo/repos/activityengine/node_modules/postcss-svgo/dist/index.js:69:28)
at walk (/home/chenzhuo/repos/activityengine/node_modules/postcss-value-parser/lib/walk.js:7:22)
at ValueParser.walk (/home/chenzhuo/repos/activityengine/node_modules/postcss-value-parser/lib/index.js:18:5)
at minifyPromise (/home/chenzhuo/repos/activityengine/node_modules/postcss-svgo/dist/index.js:34:64)
at css.walkDecls.decl (/home/chenzhuo/repos/activityengine/node_modules/postcss-svgo/dist/index.js:109:35)
at /home/chenzhuo/repos/activityengine/node_modules/postcss/lib/container.es6:151:28
at /home/chenzhuo/repos/activityengine/node_modules/postcss/lib/container.es6:109:26
at AtRule.each (/home/chenzhuo/repos/activityengine/node_modules/postcss/lib/container.es6:77:22)
at AtRule.walk (/home/chenzhuo/repos/activityengine/node_modules/postcss/lib/container.es6:108:21)
at /home/chenzhuo/repos/activityengine/node_modules/postcss/lib/container.es6:111:32
at Root.each (/home/chenzhuo/repos/activityengine/node_modules/postcss/lib/container.es6:77:22)
at Root.walk (/home/chenzhuo/repos/activityengine/node_modules/postcss/lib/container.es6:108:21)
at Root.walkDecls (/home/chenzhuo/repos/activityengine/node_modules/postcss/lib/container.es6:149:25)
at Promise (/home/chenzhuo/repos/activityengine/node_modules/postcss-svgo/dist/index.js:107:17)
at new Promise (<anonymous>)
at css (/home/chenzhuo/repos/activityengine/node_modules/postcss-svgo/dist/index.js:105:16)
at initializePlugin (/home/chenzhuo/repos/activityengine/node_modules/cssnano/dist/index.js:35:51)
at <anonymous>
Breaking build is a perfect choice to start a Monday :D Easiest workaround is just to specify exact version in package.json:
"svgo": "1.0.5",
Should be fixed in v1.1.1.
I tried the fix proposed by @Agrumas but with "svgo": "1.1.0" - died same way. Trying "svgo": "1.0.5", worked!
Most helpful comment
Should be fixed in v1.1.1.