我有问题构建一个应用程序,因为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,这两者都没有解决问题。什么好主意吗?


当前回答

在删除node_modules或清理缓存(这会花费时间)之前,尝试运行

NPM重建node-sass——force

在项目文件夹中。就像我的一样,你的问题得到解决的几率很高。如果不成功,试试下面的方法:

npm cache clean --force 
rm -rf node_modules 
npm install 
npm rebuild node-sass

npm start

其他回答

这招对我很管用: 纱线添加—force node-sass@4.14.1或纱线添加—force node-sass

如果你的终端/命令提示符显示:

Node Sass could not find a binding 
for your current environment: 
OS X 64-bit with Node 0.10.x

并且您已经尝试了以下命令,例如:

npm cache clean --force 
rm -rf node_modules 
npm install 
npm rebuild node-sass

仍然没有工作…

只需在终端中手动运行:node node_modules/node-sass/scripts/install.js

现在运行NPM start或yarn start

当我试图在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"

除了Abdelsalam Megahed的简短回答,其中包含了大部分解决方案……(也就是说,先看他的答案,然后做这件事)

在遵循Abdelsalam建议的四个简短步骤之后,我运行npm run dev并收到以下消息:

Failed to load C:\path\tsconfig.json: Missing baseUrl in compilerOptions

最后一步是编辑tsconfig。在"compilerOptions":下添加"baseURL": ".",像这样:

"compilerOptions": {
    "baseUrl": ".",
    etc etc etc

问题到这里就解决了。

注意:可能需要硬重置CtrlF5页面来查看更改(即使没有恶魔)。

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

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