Node Sass目前不支持您当前的环境:Windows 64位,使用不支持的运行时(88)。

165

我尝试使用npm i gulp-sass --save-dev安装最新版本的gulp-sass,最初遇到了很多错误,但后来解决了问题。但每当我尝试运行gulp时,都会出现以下错误:

Error: Node Sass does not yet support your current environment: Windows 64-bit with Unsupported runtime (88)
For more information on which environments are supported please see:
https://github.com/sass/node-sass/releases/tag/v4.14.1
    at module.exports (C:\Users\user\Desktop\HPortf\node_modules\node-sass\lib\binding.js:13:13)
    at Object.<anonymous> (C:\Users\user\Desktop\HPortf\node_modules\node-sass\lib\index.js:14:35)
    at Module._compile (node:internal/modules/cjs/loader:1083:30)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1112:10)
    at Module.load (node:internal/modules/cjs/loader:948:32)
    at Function.Module._load (node:internal/modules/cjs/loader:789:14)
    at Module.require (node:internal/modules/cjs/loader:972:19)
    at require (node:internal/modules/cjs/helpers:88:18)
    at Object.<anonymous> (C:\Users\user\Desktop\HPortf\node_modules\gulp-sass\index.js:166:21)
    at Module._compile (node:internal/modules/cjs/loader:1083:30)

我尝试使用npm rebuild node-sass --force来解决问题,但它也出现了错误。

PS C:\Users\user\Desktop\HPortf> npm rebuild node-sass --force
npm WARN using --force I sure hope you know what you are doing.

> node-sass@4.14.1 install C:\Users\user\Desktop\HPortf\node_modules\node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.14.1/win32-x64-88_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.14.1/win32-x64-88_binding.node":

HTTP error 404 Not Found

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g.

      export HTTP_PROXY=http://example.com:1234

or configure npm proxy via

      npm config set proxy http://example.com:8080

> node-sass@4.14.1 postinstall C:\Users\user\Desktop\HPortf\node_modules\node-sass
> node scripts/build.js

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

4
你有没有访问过https://github.com/sass/node-sass/releases/tag/v4.14.1?该版本不支持Node 15,你需要将Node降级至v5发布之前的版本。请注意不要改变原文意思。 - jonrsharpe
你的意思是我应该安装低于 Node 15 的版本吗? - DINA TAKLIT
是的,没错。除非你真的需要某些特定功能,我通常建议使用活跃的 LTS 版本(在主页上列为“推荐大多数用户使用”),目前是 v14。 - jonrsharpe
我明白了,我已经安装了当前版本的Node,但我需要安装LTS版本,我会尝试并查看。 - DINA TAKLIT
谢谢@jonrsharpe,这是一个节点版本的问题。我已经下载了稳定版本,并删除了node_module并重新安装了一些东西,现在它可以正常工作了。你可以发布一个答案,让其他人也受益,再次感谢你对此的关注。 - DINA TAKLIT
node-sass 项目本身已经宣布过时,建议转移到 dart-sass。在 Gulp 上下文中,@ClovisRosa 的 答案 处理得非常优雅。 - Andreas
22个回答

193
感谢jonrsharpe的帮助。 以下方法适用于我:
1.将Node.js安装/降级到稳定版本(LTS),例如14.15.0
2.通过npm install node-sass@4.14.0安装兼容的node-sass版本;您可以在此处找到列表,甚至可以使用npm i gulp-sass --save-dev安装gulp-sass列表直链

2
是的,问题出在当前版本的Node上,它有一些错误,因此安装LTS版本将解决这些问题,然后您可以安装gulp sass而不必安装node-sass并指定版本,因为最新版本与LTS Node版本兼容 :) - DINA TAKLIT
1
目前的 Node.js 版本 15.X 不支持某些 Node 模块,不得不花费大量时间来检查每个模块并决定降级 Node.js 版本。感谢您的发布。 - stevec
1
在你提供的npm上的node-sass条目中,“NodeJS”和“Node模块”有什么区别?我如何安装特定版本的“Node模块”? - Code-Apprentice
4
不支持MAC M1。在MAC M1上什么都无法运行 :') - crg
4
到了2021年底,即使是Node LTS版本16,错误仍然存在!准确地说:“不支持的运行时(102)”。此外,node-sass v6.0.1文档表示它在Linux上与v16兼容。 - Moongazer
显示剩余3条评论

124

以上方法都对我无效。所以,我卸载了node-sass,只安装了sass。不再出现错误!

npm uninstall node-sass
npm i sass

在我编辑了crg的回答后,wfm - macOS 10.15.7(如果有关系的话) - silvalli
这对我也起作用。在我升级npm和node以便开始构建Vue3项目后,我的Vue2环境无法通过“npm run watch”启动。将Vue2项目中的node-sass移除并替换为sass可以解决运行watch/serve的问题。 - Janne
3
现在推荐使用 sass 包,因为 LibSass 和 Node Sass 已经被弃用 - Ousmane
在降级 NodeJS 之前,我想先尝试一下这个方法,结果非常开心!之前有 120 个错误,现在全部解决了。+1 - JackWilson
完成这个操作后,它又要求安装node-sass。 - NickJ
其他答案对我没用,但这个解决了问题。(MacOS M1芯片) - CS Student

59

这个控制台命令对我很有效:

npm rebuild node-sass

我之前使用的是Node v16.x,现在已经更新到v18.16.0了,虽然这并没有解决我的问题,但我使用了这个命令行,它可以正常工作!我使用的是MacOS Ventura 13.3。 - Mister Q
我刚刚将Node从v14.x升级到了Node v18.x,这解决了我的问题。 - undefined

41

警告:LibSass和Node Sass已经被弃用。虽然它们将无限期地继续接收维护版本,但没有计划添加任何新的CSS或Sass功能或兼容性。仍在使用它们的项目应该转移到Dart Sass。

node-sass软件包已被弃用。

请改用sass,方法如下:

yarn add sass -D
# or
npm i sass --save-dev

但在我的情况下,我尝试安装gulp-sass时出现了错误。也许gulp-sass依赖于node-sass。 - DINA TAKLIT
对我有用...否则,Cypress React组件测试(https://github.com/cypress-io/cypress/tree/develop/npm/react)无法加载(如OP问题中所示的错误)。谢谢! - karfus
那对我起作用了。我想这是最快的解决方案。 - Alican Uzun
在我的情况下,运行得很好... - cesare

26

24

首先卸载

npm uninstall node-sass

然后安装

npm i sass

这一定能够运作


谢谢!它确实解决了问题,你能稍微解释一下这是如何解决的吗? - omzer
这是解决方案。谢谢。 - undefined
这个解决方案对我来说绝对有效! - undefined

12

我也遇到了同样的问题,我的最佳解决方案是使用 gulp-dart-sass。你无需降级你的 Node.js(我现在正在使用的是 Node 版本:v15.3.0)。

只需要将 gulp-sass 替换为 gulp-dart-sass 即可。


1
有时候非稳定版本会带来很多问题。即使你可以用命令解决这个问题,你可能会遇到其他问题,你的生命将被浪费在修复错误上!这是不好的。因此,安装一个稳定版本总是更好的选择。 - DINA TAKLIT
1
这实际上是一个超级解决方案,因为node-sass项目本身已经被弃用,并正式建议转移到dart-sass。 - Andreas

7
我在将Node.js版本从14.15.5(LTS)更新到15.8.0后遇到了同样的问题。为了解决这个问题,我降级回了14.15.5(LTS)。
我使用chocolatey来降级NPM。如果您的系统中没有安装chocolatey,请从这里获取。
现在要降级Node.js,我们需要执行以下步骤:
  1. 卸载最新版本的Node.js。
    使用以下代码:
    choco uninstall nodejs
  2. 安装所需版本的Node.js。
    choco install nodejs --version $VersionNumber
在我的情况下,我执行了以下操作:
choco uninstall nodejs
choco install nodejs --version 14.15.5 这解决了我的问题。

4

对我有用

  1. 使用特定的Node版本进行npm安装

    这是我正在使用的Node版本

    npm install -g npm@6.14.6 --target_arch=x64

  2. 清除缓存

    npm cache clean --force

    rm -rf /node_modules

  3. 安装node-sass

    npm install node-sass --save-dev --force

  4. 如果遇到错误和警告,请尝试以下方法:

    npm fund

    npm audit fix

    npm install -g npm@6.14.6 --target_arch=x64

    npm start


2
我遇到了同样的问题,以下是我如何解决它的方法:
首先,你需要知道你的项目中使用的是哪个 node-sass 版本,然后升级或降级你当前的 nodeJS 版本以与你当前的 node-sass 版本兼容。你可以从这个链接了解到。
当然,停止服务器并关闭你的IDE。
所以,最好的升级或降级 nodeJS 版本的方法,就像在这个答案中提到的那样,然后删除 node_modulespackage-lock.json 并重新安装。你可以这样做: npm cache clean --force rm -rf /node_modules package-lock.json npm install npm audit fix npm run <your_script_name> 祝你好运!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接