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个回答

2

对于我来说,问题出现在我将node版本更新到16之后,因此我将node版本降级到14.17.6,并卸载了不兼容node 14+的node-sass 6,重新安装了兼容node 14+的node-sass 4.14版本。

npm uninstall node-sass
npm i node-sass@4.14

1

我也遇到了同样的问题(WINDOW)-在按照以下步骤后,问题得到解决。

  1. 打开Gitbash终端。
  2. source ~/.nvm/nvm.sh
  3. curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
  4. command -v nvm

对我来说解决了问题,我可以看到已安装nvm :)


1

对我来说,唯一的解决方案是将 NodeJs 从16(我的当前版本)降级到10版本(可能是任何低于此版本的版本),我尝试了这里和其他网站建议的几乎所有方法,只有这个有效。


1
  1. 在我的情况下,我使用 npm remove node-sass 命令卸载了 node-sass

  2. 然后我安装了 node-sass 的最新版本,命令为 npm i node-sass@next

  3. 重新启动服务器

  • 太棒了!一切都正常工作*

0

我来晚了,但我所做的是安装nvm并在.bashrc中添加一个小函数,使用别名根据需要更改节点版本。

function switchNodeVersion()
{
  nvm use 14.6.0
  node-sass [options] <input.scss> [output.css]
  nvm use 16.13.0
}
alias swap=switchNodeVersion

0
我刚刚将Node版本从18降级到16,然后它就正常工作了。

0

以下是我遵循的步骤,使其正常工作。

  • brew uninstall node(或使用您使用的软件包管理器进行卸载)
  • brew install n
  • sudo chown -R $(whoami) /usr/local/n
  • n 14.15.0

0

针对在使用SPFx时遇到问题的任何人

如果您已经升级了Node版本,请按照以下步骤升级您的SPFx解决方案:

  1. 创建一个干净的SPFx项目(Webpart或Extension(Extension仅适用于2019+))

  2. 将以下文件package.json、tsconfig.json、package-lock.json保存在某个地方(以防万一)

  3. 从新项目中只复制2个文件package.json和tsconfig.json到旧项目中

  4. 运行gulp clean

  5. 运行npm install

  6. 运行gulp build等

总结 在这里


0

node-sass-middleware已经被弃用。请安装sass-middleware以替代它。

npm uninstall node-sass-middleware

npm install sass-middleware

const sassMiddleware = require('sass-middleware');

const path = require('path');

const sassMiddlewareOptions = {
  src: path.join(__dirname, 'sass'),
  dest: path.join(__dirname, 'public/stylesheets'),
  debug: true,
  outputStyle: 'compressed'
};


app.use(sassMiddleware(sassMiddlewareOptions));

现在你已经准备好了。


0

在我的情况下,问题出在 Node 版本上,需要使用 14 版本,而我使用的是 16 版本。


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