我有问题构建一个应用程序,因为node-sass不断失败的错误。

binding /Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node出错 Node Sass无法找到当前环境的绑定:OS X 64位的Node 0.10.x

我试过跑步

npm rebuild node-sass

二进制很好;退出。

当运行node -v时,我得到v6.2.2

这与sass错误说的“Node 0.10.x”不同。我不明白为什么它会得到错误的版本。我也尝试删除node_modules文件夹并运行npm update或npm install,这两者都没有解决问题。什么好主意吗?


当前回答

您可能有一个与当前版本不同的节点版本构建。尝试运行这些命令,应该可以解决问题。

npm cache clean --force &&  
rm -rf node_modules &&  
rm -rf package-lock.json &&  
npm i

其他回答

对我有用:

只需删除node-sass文件夹并运行npm install。

当我试图在MacOS上的docker中使用node-sass时,我得到了这个错误,这里的解决方案都不起作用。

发生错误是因为我在试图构建docker镜像之前进行了npm安装。npm安装正确地将node-sass的MacOS版本拉到我的node_modules中,然后我将node_modules复制到运行Linux的docker镜像中。这个失败是因为它不能在Linux上运行node-sass的MacOS版本。

在我的情况下,解决方案是在npm安装步骤后添加这个到我的makefile:

docker-compose run --rm --entrypoint "bash -c" mydockerimage "npm rebuild node-sass"

对于使用Visual Studio的用户:

目前正在为VS 2015, 2017, 2019, 2022工作(通过下面和/或这篇文章的回复)

任务运行器资源管理器无法加载任务

VS 2015

转到:工具>选项>项目和解决方案>外部Web工具

VS 2017(.3), VS 2019和VS 2022

>选项>项目和解决方案> Web包管理>外部Web工具(每个@nothrow)

在VS 2017, 2019, 2022,你还需要把$(PATH)放在$(VSINSTALLERDIR)\Web\External上面


重新排序,使$(PATH)在$(DevEnvDir)\Extensions\Microsoft\Web Tools\External之上


删除node_modules并运行npm install和npm rebuild node-sass没有任何作用。

我也有同样的问题。我在这里找不到任何合适的解决方案,所以我找到了自己的:

受到@ robb - scott解决方案和其他建议的启发,我们可以安装两个版本的Node.js,我去了C:\Program Files (x86)\nodejs,发现除了VS默认安装之外,我还安装了一个Node.js版本。

我的解决办法很简单:

进入工具>选项>项目和解决方案> Web包管理>外部Web工具 单击添加一个条目(右上角按钮块的最左边) 输入C:\Program Files (x86)\ nodejs,按Enter确认 把它放在清单的最上面 享受

可能Node.js在PATH变量中没有设置好,但这是我的工作非常快速的解决方案,我的2美分:)

node-sass runs an install script to download the required binary. If there are no environment variables, .npmrc variables or process arguments set then the binary is determined by using the current process platform, architecture and Node ABI version. Therefore, if you run node install in one application and then try to run node-sass in an application with a different platform/architecture/ABI, the binary won't have been downloaded. The solution is to manually download the binary or to fix the binary version using an environment variable (SASS_BINARY_NAME) or a .npmrc variable (sass_binary_name)

你可以在node-sass\lib\extensions.js中的getBinaryPath函数中看到这个逻辑