postcss-svgo: TypeError: Cannot set property 'multipassCount' of undefined (Gatsby)
postcss-svgo: TypeError: Cannot set property 'multipassCount' of undefined (Gatsby)
在 Gatsby 2.17.6 项目中,构建时:
Building production JavaScript and CSS bundles [====
] 1.940 s 1/6 17% run queries failed Building production JavaScript
and CSS bundles - 75.519s
ERROR #98123 WEBPACK
Generating JavaScript bundles failed
postcss-svgo: TypeError: Cannot set property 'multipassCount' of
undefined
not finished run queries - 77.639s npm ERR! code ELIFECYCLE npm ERR!
errno 1 npm ERR! gatsby-starter-default@1.0.0 build: node
node_modules/gatsby/dist/bin/gatsby.js build` npm ERR! Exit status 1
这些是我的一些依赖项:
"dependencies": {
"babel-plugin-styled-components": "^1.8.0",
:
"gatsby": "^2.0.19",
"gatsby-plugin-favicon": "^3.1.4",
"gatsby-plugin-google-fonts": "0.0.4",
"gatsby-plugin-offline": "^2.0.5",
"gatsby-plugin-react-helmet": "^3.0.0",
"gatsby-plugin-styled-components": "^3.0.1",
:
"react": "^16.5.1",
"react-dom": "^16.5.1",
"react-helmet": "^5.2.0",
"react-leaflet": "^2.1.1",
"styled-components": "^4.1.1"
}
我没有在 gatsby 上看到任何关于 postcss 的配置-config.js,我猜这是 Gatsby 的默认行为。 npm ls postcss-svgo 抛出这个:
gatsby-starter-default@1.0.0 /<app>/source
└─┬ gatsby@2.17.6
└─┬ optimize-css-assets-webpack-plugin@5.0.3
└─┬ cssnano@4.1.10
└─┬ cssnano-preset-default@4.0.7
└── postcss-svgo@4.0.2
如果这是一个解决方案,我不介意禁用 postcss-svgo,但我不知道如何。
我的项目解决了,使用npm install svgo@1.3.0 -E
,详情见:https://github.com/svg/svgo/issues/1174
"resolutions": { "svgo": "1.3.0" }
将以上内容添加到您的 "package.json",然后 rm -rf node_modules
删除 "node_modules",然后再次重新安装 "node_modules"。
这将解决问题。
此问题与最新版本的 postcss-svgo 有关。
svgo 1.3.2版本已经发布,this bug is suposed to be fixed
所以,删除你的 node_modules 目录和 package-lock.json 文件就足够了,然后创建一个新的 npm install 或 纱线安装
无论如何,感谢其他用户建议将 svgo 回滚到 1.3.0
有效。
- $ npm 安装-g svgo
- 删除 node_modules 并打包-lock.json
- $ npm 安装
- 构建项目
在 Gatsby 2.17.6 项目中,构建时:
Building production JavaScript and CSS bundles [====
] 1.940 s 1/6 17% run queries failed Building production JavaScript and CSS bundles - 75.519sERROR #98123 WEBPACK
Generating JavaScript bundles failed
postcss-svgo: TypeError: Cannot set property 'multipassCount' of undefined
not finished run queries - 77.639s npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! gatsby-starter-default@1.0.0 build: node node_modules/gatsby/dist/bin/gatsby.js build` npm ERR! Exit status 1
这些是我的一些依赖项:
"dependencies": {
"babel-plugin-styled-components": "^1.8.0",
:
"gatsby": "^2.0.19",
"gatsby-plugin-favicon": "^3.1.4",
"gatsby-plugin-google-fonts": "0.0.4",
"gatsby-plugin-offline": "^2.0.5",
"gatsby-plugin-react-helmet": "^3.0.0",
"gatsby-plugin-styled-components": "^3.0.1",
:
"react": "^16.5.1",
"react-dom": "^16.5.1",
"react-helmet": "^5.2.0",
"react-leaflet": "^2.1.1",
"styled-components": "^4.1.1"
}
我没有在 gatsby 上看到任何关于 postcss 的配置-config.js,我猜这是 Gatsby 的默认行为。 npm ls postcss-svgo 抛出这个:
gatsby-starter-default@1.0.0 /<app>/source
└─┬ gatsby@2.17.6
└─┬ optimize-css-assets-webpack-plugin@5.0.3
└─┬ cssnano@4.1.10
└─┬ cssnano-preset-default@4.0.7
└── postcss-svgo@4.0.2
如果这是一个解决方案,我不介意禁用 postcss-svgo,但我不知道如何。
我的项目解决了,使用npm install svgo@1.3.0 -E
,详情见:https://github.com/svg/svgo/issues/1174
"resolutions": { "svgo": "1.3.0" }
将以上内容添加到您的 "package.json",然后 rm -rf node_modules
删除 "node_modules",然后再次重新安装 "node_modules"。
这将解决问题。 此问题与最新版本的 postcss-svgo 有关。
svgo 1.3.2版本已经发布,this bug is suposed to be fixed
所以,删除你的 node_modules 目录和 package-lock.json 文件就足够了,然后创建一个新的 npm install 或 纱线安装
无论如何,感谢其他用户建议将 svgo 回滚到 1.3.0
有效。
- $ npm 安装-g svgo
- 删除 node_modules 并打包-lock.json
- $ npm 安装
- 构建项目