当运行npm run build时,如何修复“Node Sass在当前环境中找不到绑定”的问题

11

我正在运行sudo npm run build,但它显示找不到sass的绑定。我目前仅安装了一个版本的npm,即11.13.0。

我尝试了npm install node-sassnpm rebuild node-sassnpm uninstall -save node-sassnpm install -save node-sassnpm cache clean、完全删除node和node_modules文件夹,但仍然出现相同的错误。但是,我之前安装了版本8.0.0,但是使用nvm将其删除了。

ERROR in ./src/main/webapp/styles/styles.scss (./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js??ref--14-3!./src/main/webapp/styles/styles.scss)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):
Error: Missing binding /home/dev/IdeaProjects/web-project/node_modules/node-sass/vendor/linux-x64-57/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 8.x

Found bindings for the following environments:
  - Linux 64-bit with Node.js 11.x

如果您需要任何其他信息,请告诉我。


我遇到了同样的错误,因为我使用的Node包不支持Angular项目中的Node Sass版本。我的建议是您需要安装 Node.js 的 LTS 版本。 - user4851087
npm rebuild node-sass? - Anjil Dhamala
3个回答

13

这是由于您项目中使用的 Node 版本与全局安装的版本不匹配所致。

  1. 查看项目的 package.json 文件中指定的 Node 版本
  2. 将版本更改为所需的 Node 版本
  3. 在项目目录中运行 npm clean-install 命令清除项目的 node_modules 文件夹
  4. 再次运行 npm install 命令以重新安装所有依赖包
  5. 使用命令 node -v 确定当前激活的 Node 版本。如果输出版本与项目中设置的版本相同,则您的 npm run build 命令将能够正常工作。如果它们不匹配,则需要安装相应版本的 Node 或者如果您正在使用 nvm,请使用命令 nvm use <version> 激活相应版本。

7
尝试执行以下命令:sudo npm install --save-dev --unsafe-perm node-sass。我已验证此方法有效。

这也是快速修复。 - Hassan Ali Shahzad
对我来说,当在 package.json 中明确设置的节点版本为 10.x.y 而安装的节点版本为 12.x.y 时,它并没有起作用,因此不得不使用 Kinman 的答案。 - Eljah
如果使用yarn,我应该怎么做? - Dolphin

0

解决我相同问题的唯一方法是删除所有的node_modules并重新安装,这样在React中所有的工作都正常。


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