错误:Node Sass 尚不支持您当前的环境

Dol*_*hin 7 javascript node.js reactjs node-sass

当我使用 command 在 Fedora 32 中启动 React 项目时yarn start,它显示如下错误:

\n
./src/style/base.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss!./node_modules/resolve-url-loader??ref--6-oneOf-5-3!./node_modules/sass-loader/dist/cjs.js??ref--6-oneOf-5-4!./src/style/base.scss)\nError: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)\nFor more information on which environments are supported please see:\nhttps://github.com/sass/node-sass/releases/tag/v4.14.1\n
Run Code Online (Sandbox Code Playgroud)\n

我当前的节点版本是:

\n
[dolphin@MiWiFi-R4CM-srv]~/Documents/GitHub/react-admin% nvm list\n        v8.17.0\n       v10.24.1\n->     v16.13.0\n        v17.2.0\n         system\ndefault -> 8 (-> v8.17.0)\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试了不同版本的节点但没有解决这个问题,为什么会发生这种情况?我应该怎么做才能解决这个问题?我没有node-sass在 中找到任何包依赖项package.json,这是 package.json 文件:

\n
{\n    "name": "react-admin",\n    "version": "0.1.0",\n    "private": true,\n    "dependencies": {\n        "@ant-design/compatible": "1.0.8",\n        "animate.css": "^3.7.2",\n        "antd": "^4.0.0",\n        "axios": "^0.19.0",\n        "braft-editor": "^2.3.8",\n        "echarts": "^4.4.0",\n        "is-core-module": "2.2.0",\n        "moment": "2.29.1",\n        "nprogress": "^0.2.0",\n        "react": "^17.0.2",\n        "react-dom": "^17.0.2",\n        "react-highlight-words": "0.17.0",\n        "react-loadable": "^5.5.0",\n        "react-redux": "^7.1.1",\n        "react-router-dom": "^5.1.1",\n        "react-scripts": "^3.2.0",\n        "redux": "^4.0.4",\n        "redux-logger": "3.0.6",\n        "redux-promise-middleware": "^6.1.2",\n        "redux-thunk": "^2.3.0",\n        "screenfull": "^5.0.0"\n    },\n    "scripts": {\n        "start": "react-app-rewired start",\n        "build": "CI=false && react-app-rewired build",\n        "test": "react-app-rewired test",\n        "eject": "react-scripts eject"\n    },\n    "eslintConfig": {\n        "extends": "react-app"\n    },\n    "browserslist": {\n        "production": [\n            ">0.2%",\n            "not dead",\n            "not op_mini all"\n        ],\n        "development": [\n            "last 1 chrome version",\n            "last 1 firefox version",\n            "last 1 safari version"\n        ]\n    },\n    "husky": {\n        "hooks": {\n            "pre-commit": "lint-staged"\n        }\n    },\n    "lint-staged": {\n        "src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": [\n            "node_modules/.bin/prettier\xc2\xa0--write",\n            "git\xc2\xa0add"\n        ],\n        "src/**/*.{css,scss,less,json,html,md,markdown}": [\n            "node_modules/.bin/prettier\xc2\xa0--write",\n            "git\xc2\xa0add"\n        ]\n    },\n    "devDependencies": {\n        "@babel/helper-builder-react-jsx": "^7.12.13",\n        "babel-plugin-import": "^1.12.2",\n        "customize-cra": "^0.8.0",\n        "husky": "^3.0.9",\n        "lint-staged": "^9.4.2",\n        "sass": "1.37.0",\n        "prettier": "^1.18.2",\n        "react-app-rewired": "^2.1.4"\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

You*_*mar 12

第一个解决方案

确保您的node.js版本不优于推荐的版本。如果不降级,为此,您可以使用以下 nnpm

npm i -g n
n stable
# if one of the commands does not pass, you may need to use sudo
sudo npm install -g n
sudo n 14
Run Code Online (Sandbox Code Playgroud)

那么你会想使用sass包而不是node-sass,因为它已被弃用。在你的终端中运行:

npm uninstall node-sass --save
npm install sass --save
Run Code Online (Sandbox Code Playgroud)

第二种解决方案

如果您node-sass出于某种原因需要或想要,您应该将您的nodejs版本降级为 like v14。为此,您可以使用以下的 nnpm

npm install -g n
n 14
# if one of the commands does not pass, you may need to use sudo
sudo npm install -g n
sudo n 14
Run Code Online (Sandbox Code Playgroud)


Bal*_*ngh 6

这是一个常见的node-sass版本与Node版本的兼容性问题。

快速破解:

卸载并重新安装node-sass,它会自己找到丢失的二进制文件。

npm uninstall --save-dev node-sass
npm install --save-dev node-sass
Run Code Online (Sandbox Code Playgroud)

永久解决方案:

如果使用上述命令未能解决问题,则可能是您的节点版本有问题。检查您的node版本是否支持node-sass版本。选择稳定的节点版本并重复上述命令来解决此问题。

以下是节点与node-sass的兼容性表:-

NodeJS | Supported node-sass version | Node Module
Node 19     8.0                         111
Node 18     8.0                         108
Node 17     7.0+                        102
Node 16     6.0+                        93
Node 15     5.0+                        88
Node 14     4.14+                       83
Node 13     4.13+, <5.0                 79
Node 12     4.12+                       72
Node 11     4.10+, <5.0                 67
Node 10     4.9+, <6.0                  64
Node 8      4.5.3+, <5.0                57
Node <8     <5.0                        <57
Run Code Online (Sandbox Code Playgroud)

如果问题仍未解决,请检查 node-sass 支持的环境列表:- https://github.com/sass/node-sass/releases/