我有问题构建一个应用程序,因为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缓存:

npm cache clean --force  
npm install

在同样的情况下,它总是适用于我。

UPD:您的问题也可能是由于缺少全局sasslib。

npm install -g sass

其他回答

Docker相关的答案在这里*

回答如果你看到这个问题,或类似的东西,并正在使用Docker。

原因:当将当前文件结构复制到Docker容器内部时,你可能会将节点模块从一个OS系统复制到另一个OS系统(例如,从Mac到Linux容器)。

解决方案:

添加一个.dockerignore,然后在里面添加:

node_modules

这将导致npm install为docker环境而不是本地机器环境安装绑定。

就我的具体情况而言,上述答案都不起作用。那么它的工作原理是:

rm -rf node_modules 
rm -rf /tmp/* 
rm -rf /root/.npm/node-sass 
npm uninstall --save node-sass 
npm cache clean --force 

NPM缓存验证检查缓存中是否没有剩余内容

npm install

虽然我没有试图重现序列,但这是上述工作的组合。 此外,你还可以尝试:

NPM install node-sass或NPM install node-sass -g

npm rebuild node-sass
npm install bindings

检查你的npm版本是否与你的项目要求相同

我在Node v7.4.0 Current(最新功能)中遇到了同样的问题。

在这里阅读了一些内容,并将Node降级为v6.9.4 LTS,在运行npm rebuild Node -sass后,它下载了二进制文件,一切都开始工作了。

从https://github.com/sass/node-sass/releases/download/v3.13.1/win32-x64-48_binding.node下载二进制文件 下载完成。 二进制文件保存到D:\xxx\xxx-xxx\node_modules\node-sass\vendor\win32-x64-48\binding.node 将二进制文件缓存到C:\Users\user\AppData\Roaming\npm-cache\node-sass\3.13.1\win32-x64-48_binding.node

删除/node-modules文件夹并重新安装,或者在删除后运行gradle任务deploy

/用户/沃伦/网站/ random-docs / my-cms / node_modules node-sass /供应商/ darwin-x64-11 / binding.node

它解决了你的问题。