加载PostCSS“postcss-normalize”插件失败:找不到模块“postcss-normalize”

问题描述 投票:0回答:2

节点 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"
  }

网上查了一下,没有这个确切的错误。类似的建议升级节点版本,但对我不起作用。 有什么建议吗?

yarnpkg postcss
2个回答
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)并重新生成了它。

这是一个粗略的解决方案,因为这意味着所有子依赖项都可以更改(以及带来的所有潜在错误),但这是我能想到的最好的解决方案。


0
投票

确保您已经安装了“postcss-normalize”软件包:npm install postcss-normalize --save-dev。这解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.