节点 v16.16.0 纱线 1.22.19
软件包升级并加载我的反应应用程序后,我收到此错误
ERROR in ./src/index.css (./node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[5].use[1]!./node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[1].oneOf[5].use[2]!./node_modules/source-map-loader/dist/cjs.js!./src/index.css)
Module Error (from ./node_modules/postcss-loader/dist/cjs.js):
Loading PostCSS "postcss-normalize" plugin failed: Cannot find module 'postcss-normalize'
Require stack:
- /Users/nnn/1work/app-ui/node_modules/postcss-loader/dist/utils.js
- /Users/nnn/1work/app-ui/node_modules/postcss-loader/dist/index.js
- /Users/nnn/1work/app-ui/node_modules/postcss-loader/dist/cjs.js
- /Users/nnn/1work/app-ui/node_modules/loader-runner/lib/loadLoader.js
- /Users/nnn/1work/app-ui/node_modules/loader-runner/lib/LoaderRunner.js
- /Users/nnn/1work/app-ui/node_modules/webpack/lib/NormalModule.js
- /Users/nnn/1work/app-ui/node_modules/webpack-manifest-plugin/dist/index.js
- /Users/nnn/1work/app-ui/node_modules/react-scripts/config/webpack.config.js
- /Users/nnn/1work/app-ui/node_modules/react-scripts/scripts/start.js
(@/Users/nnn/1work/app-ui/src/index.css)
但是我可以在文件夹中搜索
$ find node_modules -name 'postcss-normalize'
node_modules/react-scripts/node_modules/postcss-normalize
package.json 看起来像这样(删除我们的私有包后)
"dependencies": {
"@auth0/auth0-react": "2.2.1",
"buffer": "^6.0.3",
"crypto": "npm:crypto-browserify",
"crypto-browserify": "^3.12.0",
"framer-motion": "10.16.1",
"jsonwebtoken": "9.0.1",
"moment": "^2.29.4",
"moment-timezone": "^0.5.43",
"react": "18.2.0",
"react-dom": "18.2.0",
"react-router-dom": "6.15.0",
"react-scripts": "5.0.1",
"react-toastify": "9.1.3",
"sass": "1.66.1",
"stream": "^0.0.2",
"util": "^0.12.5",
"web-vitals": "3.4.0"
},
"devDependencies": {
"@testing-library/jest-dom": "6.1.0",
"@testing-library/react": "14.0.0",
"@testing-library/user-event": "14.4.3",
"husky": "8.0.3",
"jest-junit": "16.0.0",
"jest-sonar-reporter": "2.0.0",
"lint-staged": "14.0.1",
"prettier": "3.0.2"
}
网上查了一下,没有这个确切的错误。类似的建议升级节点版本,但对我不起作用。 有什么建议吗?
我也有同样的问题。错误的原因是postcss需要找到相对于自身的postcss-normalize,并且在我的monorepo项目中postcss被提升到项目的根目录,但postcss-normalize却没有。
> find -iname 'postcss' -type d
./node_modules/postcss
> find -iname 'postcss-normalize' -type d
./frontends/projectA/node_modules/postcss-normalize
./frontends/projectB/node_modules/postcss-normalize
./frontends/projectC/node_modules/postcss-normalize
这很奇怪,因为所有三个项目都依赖于相同的版本。我找不到一种简单的方法来将 postcss-normalize 提升到项目的根目录。最后我删除了锁定文件(yarn.lock / package-lock.json)并重新生成了它。
这是一个粗略的解决方案,因为这意味着所有子依赖项都可以更改(以及带来的所有潜在错误),但这是我能想到的最好的解决方案。
确保您已经安装了“postcss-normalize”软件包:npm install postcss-normalize --save-dev。这解决了我的问题。