错误:PostCSS 插件自动前缀需要 PostCSS 8。更新 PostCSS 或降级此插件

Ris*_*war 53 npm reactjs postcss

每当我运行 npm start 时,我都会收到此错误。我尝试了几个修复程序,但没有一个对我有用。我尝试将 autoprefixer 的版本更改为 9.8.6,但是没有用。请帮我解决这个问题

这是我的 package.json

{
  "name": "reactgallery",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.3"
  },
  "scripts": {
    "start": "npm run watch:css && react-scripts start",
    "build": "npm run build:css && react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "build:css": "postcss src/assets/tailwind.css -o src/assets/main.css",
    "watch:css": "postcss src/assets/tailwind.css -o src/assets/main.css"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "autoprefixer": "^9.8.6",
    "postcss-cli": "^7.1.2",
    "tailwindcss": "^1.8.10"
  }
}
Run Code Online (Sandbox Code Playgroud)

小智 92

快速解决

将您的自动前缀降级到版本 9,使用

“自动前缀”:“^9.0.0”

在您的开发依赖项中。

更多细节

PostCSS 已更新到第 8 版,但是,PostCSS CLI 尚未更新以处理使用新 PostCSS 8+ API 的 PostCSS 插件。Autoprefixer 使用自 10 版以来的新 PostCSS 8 API。

这在PostCSS GitHub 页面中的已知问题下进行了记录

一旦 PostCSS CLI 更新为处理使用新 PostCSS 8+ API 的插件,这可能就不是问题了。但在那之前,你可能需要降级一些 PostCSS 插件以避免错误。

  • 感谢您的回复。这对我不起作用。我仍然收到此错误。错误:PostCSS 插件自动前缀需要 PostCSS 8。更新 PostCSS 或降级此插件。 (2认同)

小智 29

如果您遇到此问题并且您使用的是 Tailwind CSS v2,请尝试此操作

npm uninstall tailwindcss postcss autoprefixer
npm install tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9

Run Code Online (Sandbox Code Playgroud)

来源:https : //tailwindcss.com/docs/installation#post-css-7-compatibility-build

  • 这应该是标记的答案。 (3认同)
  • 当您在 MacOS 中运行该命令时,您可能会遇到问题“zsh: no matches found: postcss@^7”。尝试运行此 `npm install tailwindcss@npm:@tailwindcss/postcss7-compat 'postcss@^7' 'autoprefixer@^9'` 参考:https://github.com/tailwindlabs/tailwindcss/discussions/3575 (2认同)

小智 27

我对此不确定,但是您可以尝试将 postcss 安装为依赖项吗?

npm i postcss
Run Code Online (Sandbox Code Playgroud)

  • 这对我有用,CSS 被适当缩小,非常感谢 (2认同)

dav*_*ira 8

好的,对我来说已修复删除package-lock.json并安装:

"tailwindcss": "^1.8.10"
"postcss-cli": "^7.1.0"
"autoprefixer": "^9.7.5"
Run Code Online (Sandbox Code Playgroud)


小智 8

"dependencies": {
    "autoprefixer": "^9.8.6",
    "postcss": "^8.0.0",
    "postcss-cli": "^8.1.0",
    "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.2",
},
Run Code Online (Sandbox Code Playgroud)

依赖对象和版本可以直接在文件中修改package.json并且可以工作


Ιησ*_*αυή 7

这些步骤对我有用。这是来自github

npm uninstall tailwindcss postcss autoprefixer
npm install tailwindcss@latest postcss@latest autoprefixer@latest

npx tailwindcss init -p

npm uninstall tailwindcss postcss autoprefixer
npm install tailwindcss@npm:@tailwindcss/postcss7-compat postcss@^7 autoprefixer@^9
Run Code Online (Sandbox Code Playgroud)


ona*_*lbi 5

基于文档链接,放弃对旧 NodeJS 的一些支持,您必须手动升级包。在我的例子中,基于 webpack 的项目只需要更新这些依赖项:

  "dependencies": {
    "autoprefixer": "^10.0.2",
    "postcss": "^8.1.7",
    "postcss-loader": "^4.0.4"
  }
Run Code Online (Sandbox Code Playgroud)

所以你不需要降级autoprefixer :)