Dol*_*hin 7 javascript node.js reactjs node-sass
当我使用 command 在 Fedora 32 中启动 React 项目时yarn start,它显示如下错误:
./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\nRun 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)\nRun Code Online (Sandbox Code Playgroud)\n我尝试了不同版本的节点但没有解决这个问题,为什么会发生这种情况?我应该怎么做才能解决这个问题?我没有node-sass在 中找到任何包依赖项package.json,这是 package.json 文件:
{\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}\nRun Code Online (Sandbox Code Playgroud)\n
You*_*mar 12
确保您的node.js版本不优于推荐的版本。如果不降级,为此,您可以使用以下 n包npm:
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。为此,您可以使用以下的 n包npm:
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)
这是一个常见的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/
| 归档时间: |
|
| 查看次数: |
27788 次 |
| 最近记录: |