我有问题构建一个应用程序,因为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,这两者都没有解决问题。什么好主意吗?
我在本地运行Docker中的一个构建时,使用一个节点alpine映像,很长一段时间都有这个问题。我用下面的代码来创建基础层:
FROM node:19.4-alpine3.17 AS node_base
RUN apk update && \
apk add python3 make && \
rm -rf /var/cache/apk/*
它缺少了一个包:g++。把上面的改为下面的,对我来说很管用:
FROM node:19.4-alpine3.17 AS node_base
RUN apk update && \
apk add python3 make g++ && \
rm -rf /var/cache/apk/*
我相信这与带有M1芯片的macbook PRO的架构有关,在其他机器上我不会遇到这个错误,但我还没有测试过。
对于使用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没有任何作用。
除了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页面来查看更改(即使没有恶魔)。
我是一个Windows 8用户,最近将Node更新到v8.11.1,将npm更新到v6.0.0,并面临类似的问题。没有任何工作- npm install -g node-sass@latest或从项目node_modules/中删除node-sass目录-这些都不适合我。
Laravel Mix向我的浏览器控制台抛出一个错误,说缺少一个节点:win32-x64-57。我不知道是不是因为网络连接变慢了还是什么原因,更新的时候节点不见了。
因此,一些答案引导我去研究Node-Sass发行版,我找到了解决方案。
步骤1:使用命令检查你的node-sass版本:npm view node-sass version(步骤4中的{你的版本})
步骤2:获取Node-Sass版本
步骤3:获得您的版本,并在每个版本下列出的资产中找到缺失的节点,并下载文件
第四步:打开PC的C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{你的版本}\,将下载的.node文件放在版本文件夹中
这样就做完了。
在我的例子中,node-sass版本是4.9.0,缺少的节点是win32-x64-57_binding。所以我从4.9.0版本下载了.node文件,并执行了步骤4。
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函数中看到这个逻辑