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


当前回答

没有一个安装/重建解决方案为我解决了这个问题(使用gulp)。

我是这样解决的:

1)从存储库下载丢失的绑定文件。

2)将文件重命名为binding.node。

3)如果不存在node_modules/node-sass/vendor/darwin-x64-11(错误信息中的路径)目录。

4)将绑定文件添加到“node_modules/node-sass/vendor/darwin-x64-11”目录下

其他回答

我必须首先选择新的默认节点版本nvm use ***或nvm install ***,然后再次删除项目和npm I中的node_modules中的所有内容。

这是可能不会发生在其他人身上的事情,但在我的情况下,当我决定重新启动我的项目(遵循不同的vue.js教程)时出现了这个错误。

造成我问题的步骤是:

# move my existing project
mv project-name project-name-old
# create a new project
vue create project-name
# run server
npm run server

问题是我之前的服务器仍然在不同的终端选项卡上运行。在localhost:8080上,仍然显示的页面是旧的项目。

我所要做的就是关闭终端中的旧服务器,并再次执行“npm run serve”(或查看localhost:8081)。

以防这让别人困惑了半个小时,或者是为了搞笑。

Docker相关的答案在这里*

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

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

解决方案:

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

node_modules

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

我在本地运行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的架构有关,在其他机器上我不会遇到这个错误,但我还没有测试过。

Mac:

- cmd + SHIFT + G ——/ usr /地方/ lib / node-sass -右击并重命名:应该仍然是相同的node-sass -然后执行NPM install node-sass -g

固定。