当我在Fedora 32中使用命令yarn start
启动react项目时,它显示如下错误:
./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)
Error: Node Sass does not yet support your current environment: Linux 64-bit with Unsupported runtime (93)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1
我当前的节点版本为:
[dolphin@MiWiFi-R4CM-srv]~/Documents/GitHub/react-admin% nvm list
v8.17.0
v10.24.1
-> v16.13.0
v17.2.0
system
default -> 8 (-> v8.17.0)
我已经尝试了不同版本的节点,但没有解决这个问题,为什么会发生这种情况?我应该做什么来解决这个问题?我没有发现任何包依赖node-sass
在package.json
中,这是package.json文件:
{
"name": "react-admin",
"version": "0.1.0",
"private": true,
"dependencies": {
"@ant-design/compatible": "1.0.8",
"animate.css": "^3.7.2",
"antd": "^4.0.0",
"axios": "^0.19.0",
"braft-editor": "^2.3.8",
"echarts": "^4.4.0",
"is-core-module": "2.2.0",
"moment": "2.29.1",
"nprogress": "^0.2.0",
"react": "^17.0.2",
"react-dom": "^17.0.2",
"react-highlight-words": "0.17.0",
"react-loadable": "^5.5.0",
"react-redux": "^7.1.1",
"react-router-dom": "^5.1.1",
"react-scripts": "^3.2.0",
"redux": "^4.0.4",
"redux-logger": "3.0.6",
"redux-promise-middleware": "^6.1.2",
"redux-thunk": "^2.3.0",
"screenfull": "^5.0.0"
},
"scripts": {
"start": "react-app-rewired start",
"build": "CI=false && react-app-rewired build",
"test": "react-app-rewired test",
"eject": "react-scripts eject"
},
"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"
]
},
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
"lint-staged": {
"src/**/*.{js,jsx,ts,tsx,json,css,scss,md}": [
"node_modules/.bin/prettier --write",
"git add"
],
"src/**/*.{css,scss,less,json,html,md,markdown}": [
"node_modules/.bin/prettier --write",
"git add"
]
},
"devDependencies": {
"@babel/helper-builder-react-jsx": "^7.12.13",
"babel-plugin-import": "^1.12.2",
"customize-cra": "^0.8.0",
"husky": "^3.0.9",
"lint-staged": "^9.4.2",
"sass": "1.37.0",
"prettier": "^1.18.2",
"react-app-rewired": "^2.1.4"
}
}
3条答案
按热度按时间ztigrdn81#
第一种溶液
请确保您的
node.js
版本不上级recommended版本。如果不降级,您可以使用npm
中的n包:然后你会想使用sass包而不是node-sass,因为它已经过时了。
第二种溶液
如果你出于某种原因需要
node-sass
,你应该把你的nodejs
版本降级到v14
这样的版本,你可以使用npm
中的n包:rqenqsqc2#
这是一个常见的node-sass版本与Node版本的兼容性问题。
快速破解:
卸载并重新安装
node-sass
,它会自己找到丢失的二进制文件。永久解决方案:
如果使用上述命令未解决问题,则您的节点版本可能存在问题。请检查您的节点版本是否支持node-sass版本。选择稳定的节点版本并重复上述命令以解决此问题。
下面是节点与node-sass的兼容性表:-
如果问题仍未解决,请检查node-sass支持的环境列表:-https://github.com/sass/node-sass/releases/
gorkyyrv3#
我在部署一个已经存在的应用程序时遇到了同样的问题。
而且它帮助我降级了Node版本。
开发应用程序时,使用了Node v14.19.2,本地安装了版本Node 16.18.0。node-sass根据以下方案依赖于节点版本:
根据表中的依赖关系,我安装了Node版本14,它对应于package.json中的node-sass版本,一切正常
我尝试更改node-sass版本,但没有成功,只能通过降低Node版本来解决问题
有时,在更改节点版本后,您需要运行以下命令: