node版本与node-sass版本不兼容时问题解决

Posted 鲸洛洛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了node版本与node-sass版本不兼容时问题解决相关的知识,希望对你有一定的参考价值。

在项目运行中会经常遇到node版本号与node-sass版本号不兼容的问题,这时可以有两种解决方案。

附图:node与node-sass的对应关系

 

1、改node版本号去对应node-sass  2、改node-sass版本号去对应node

一般情况下选择修改node-sass的版本号,这里只会影响sass,但是如果修改node版本可能会影响其他模块,因小失大。除非是在协作项目中沟通无效,或者其他原因不能修改node-sass版本号,这时就只能修改node版本了,具体参考 自定义node版本,实现node多版本控制_鲸洛洛的博客-CSDN博客

(这里使用nvm管理node不同版本)

改node-sass版本号去对应node 步骤:

方法一:

//先卸载
npm uninstall node-sass
npm uninstall sass-loader
npm i node-sass@4.14.1   (安装与node版本兼容的node-sass版本)
node i sass-loader@7.3.1   (安装与node版本兼容的node-loader版本)

方法二:
直接在package.json文件上修改两者版本号:

然后删掉node-modules,直接npm i  重新安装依赖

无法安装 node-sass

【中文标题】无法安装 node-sass【英文标题】:Can't get node-sass to install 【发布时间】:2021-04-28 04:34:05 【问题描述】:

我遇到了很多人都遇到的错误,并认为我找到了解决方案 here。本质上是说我的 node 版本与 node-sass 的版本不兼容。很多人都有同样的问题,所以我相信链接会有所帮助。但是,当我运行 npm install node-sass@4.14.1 时,我得到一个不同的错误。我知道它必须是一些简单的修复,但我找不到它!有谁明白这里发生了什么?

npm ERR! code 1
npm ERR! path C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-sass
npm ERR! command failed
npm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c "node scripts/build.js"
npm ERR! Building: C:\Program Files\nodejs\node.exe C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp verb cli [
npm ERR! gyp verb cli   'C:\\Program Files\\nodejs\\node.exe',
npm ERR! gyp verb cli   'C:\\Users\\reaga\\Desktop\\bestconnect-react\\my-app\\node_modules\\node-gyp\\bin\\node-gyp.js',
npm ERR! gyp verb cli   'rebuild',
npm ERR! gyp verb cli   '--verbose',
npm ERR! gyp verb cli   '--libsass_ext=',
npm ERR! gyp verb cli   '--libsass_cflags=',
npm ERR! gyp verb cli   '--libsass_ldflags=',
npm ERR! gyp verb cli   '--libsass_library='
npm ERR! gyp verb cli ]
npm ERR! gyp info using node-gyp@3.8.0
npm ERR! gyp info using node@15.0.1 | win32 | x64
npm ERR! gyp verb command rebuild []
npm ERR! gyp verb command clean []
npm ERR! gyp verb clean removing "build" directory
npm ERR! gyp verb command configure []
npm ERR! gyp verb check python checking for Python executable "python2" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python2
npm ERR! gyp verb `which` failed     at getNotFoundError (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:183:21)
npm ERR! gyp verb `which` failed  python2 Error: not found: python2
npm ERR! gyp verb `which` failed     at getNotFoundError (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:183:21) 
npm ERR! gyp verb `which` failed   code: 'ENOENT'
npm ERR! gyp verb `which` failed 
npm ERR! gyp verb check python checking for Python executable "python" in the PATH
npm ERR! gyp verb `which` failed Error: not found: python
npm ERR! gyp verb `which` failed     at getNotFoundError (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:183:21)
npm ERR! gyp verb `which` failed  python Error: not found: python
npm ERR! gyp verb `which` failed     at getNotFoundError (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:13:12)
npm ERR! gyp verb `which` failed     at F (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:68:19)
npm ERR! gyp verb `which` failed     at E (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:80:29)
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\node_modules\which\which.js:89:16
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\isexe\index.js:42:5
npm ERR! gyp verb `which` failed     at C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\isexe\windows.js:36:5
npm ERR! gyp verb `which` failed     at FSReqCallback.oncomplete (node:fs:183:21) 
npm ERR! gyp verb `which` failed   code: 'ENOENT'
npm ERR! gyp verb `which` failed 
npm ERR! gyp verb could not find "python". checking python launcher 
npm ERR! gyp verb could not find "python". guessing location 
npm ERR! gyp verb ensuring that file exists: C:\Python27\python.exe
npm ERR! gyp ERR! configure error 
npm ERR! gyp ERR! stack Error: Can't find Python executable "python", you can set the PYTHON env variable.
npm ERR! gyp ERR! stack     at PythonFinder.failNoPython (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\lib\configure.js:484:19)
npm ERR! gyp ERR! stack     at PythonFinder.<anonymous> (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-gyp\lib\configure.js:509:16)
npm ERR! gyp ERR! stack     at callback (C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\graceful-fs\polyfills.js:295:20)
npm ERR! gyp ERR! stack     at FSReqCallback.oncomplete (node:fs:183:21)
npm ERR! gyp ERR! System Windows_NT 10.0.18362
npm ERR! gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Users\\reaga\\Desktop\\bestconnect-react\\my-app\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
npm ERR! gyp ERR! cwd C:\Users\reaga\Desktop\bestconnect-react\my-app\node_modules\node-sass
npm ERR! gyp ERR! node -v v15.0.1
npm ERR! gyp ERR! node-gyp -v v3.8.0
npm ERR! gyp ERR! not ok
npm ERR! Build failed with error code: 1

【问题讨论】:

请尝试使用我的答案,让我知道它有效。 【参考方案1】:

Node 15 不支持 node-sass v4.x。请降级您的 Node 版本或升级到 node-sass v5 https://github.com/sass/node-sass#node-version-support-policy

【讨论】:

【参考方案2】:

通过从提升的 PowerShell(以管理员身份运行)运行 npm install -g windows-build-tools,使用 Microsoft 的 windows-build-tools 安装所有必需的工具和配置。

注意:在 windows 上工作

https://github.com/Microsoft/nodejs-guidelines/blob/master/windows-environment.md#environment-setup-and-configuration

【讨论】:

【参考方案3】:

首次安装:

npm i node-sass

第二次安装:

npm 我

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于node版本与node-sass版本不兼容时问题解决的主要内容,如果未能解决你的问题,请参考以下文章

node-sass 安装报错

无法安装 node-sass

`sass-loader` 需要 `node-sass` >=4。请安装兼容版本

node-sass模块报错安装不上?试试这个方法,亲测有效

尝试修复此错误“Node Sass 版本 6.0.1 与 ^4.0.0 || ^5.0.0 不兼容。”

解决 node-sass 安装时出现的各种报错