Node Sass无法为您的当前环境找到绑定

我在构建应用程序时遇到问题,因为node-sass不断出现错误。

缺少绑定 /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更新或npm安装,两者都没有解决问题。任何想法?

477748 次浏览

我遇到了类似的问题,原因是我的机器中安装了两个版本的Node:一个是“全局”,另一个是项目级别。 只有当Gulp构建在4. x版本下运行时,Sass才会正确构建Node.js,因此请确保您升级了正在使用的Node版本。

PS:如果您完全删除项目中的node_modules文件夹并从头开始重新构建,npm将下载当前系统和节点版本的正确依赖项。

我也有同样的问题

    throw new Error(errors.missingBinary());
^


Error: Missing binding /path/to/project/node_modules/node-sass/vendor/linux-x64-47/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 5.x


Found bindings for the following environments:
- Linux 64-bit with Node 0.10.x
- Linux 64-bit with Node.js 5.x

那是因为我使用了不同的nodejs版本进行npm安装, 尝试删除node_modules文件夹安装并启动

cd your_project
rm -rf node_modules
npm install
npm start or gulp or whatever

如果您使用的是nvm do

nvm use stable // or your favorite version
// remove node_module directory
npm install
npm start or gulp or whatever

我也有同样的问题

您的海湾文件中有一个错误:
错误:缺少绑定E:\allapp\badshaindancu的\node_module\node-sass\供应商\win32-x64-46\binding.node
Node Sass找不到当前环境的绑定:Windows 64位Node.js4. x

找到以下环境的绑定:
    -OS X 64位,Node.js4. x

如何解决这个问题

通过进入项目文件夹,然后执行命令:

npm rebuild node-sass

我在Windows环境中遇到了同样的问题,收到以下错误:

错误:缺少绑定C:\Development{ProjectName}\node_modules\node-sass\供应商\win32-ia32-47\binding.node
Node Sass找不到当前环境的绑定:Windows 32位Node.js5. x
找到以下环境的绑定:
   -Windows 64位与Node.js6. x

此处其他答案(npm installnpm rebuild node-sass等)中列出的npm命令都不起作用。

相反,我必须下载丢失的绑定并将其放置在适当的目标文件夹中。

可以在在git中找到绑定。将文件与错误消息中/node_modules/node-sass/vendor/之后标识的文件夹名称匹配(在您的情况下为'darwin-x64-11',因此您需要darwin-x64-11_binding.node文件)。

在项目中创建丢失的文件夹(/node_modules/node-sass/vendor/darwin-x64-11),将.node文件复制到新目录,并将其重命名为binding.node

Node-sass发布URL: https://github.com/sass/node-sass/releases

对于使用Visual Studio的用户:

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

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

对于VS 2015

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

适用于VS 2017(3)、VS 2019和VS 2022

  • 工具>选项>项目和解决方案>Web包管理>外部Web工具(per@no的)

在VS 2017,2019,2022中,您还需要将$(PATH)放在$(VSINSTALLERDIR)\Web\外部


  • 重新排序,使$(PATH)高于$(DevEnvDir)\扩展\Microsoft\Web工具\外部

输入图片描述


删除node_modules并运行npm install,然后运行npm rebuild node-sass什么也没做

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

在这里做了一些阅读并将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\供应商\win32-x64-48\binding.node
将二进制文件缓存到C:\用户\用户\AppData\漫游\npm-ache\node-sass\3.13.1\win32-x64-48_binding.node'

在创建AspNetCore应用程序时,我在Visual Studio 2015社区版中遇到的类似错误是:

Node Sass could not find a binding for your current environment: Windows 32-bit with Node.js 5.x
Found bindings for the following environments:
- Windows 64-bit with Node.js 6.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to build the binding for your current environment.
at module.exports ([..]\node_modules\node-sass\lib\binding.js:15:13)
at Object.<anonymous> ([..]\node_modules\node-sass\lib\index.js:14:35)
at Module._compile (module.js:397:26)
at Object.Module._extensions..js (module.js:404:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> ([..]\node_modules\gulp-sass\index.js:187:21)
at Module._compile (module.js:397:26)

您可以从上面的错误中看到,原因是nodejs绑定的版本不匹配。

Node Sass找不到当前环境的绑定: Windows 32位Node.js5. x

找到以下环境的绑定: -Windows 64位6. xNode.js

我找到的解决办法是

  • 安装nodejs windows版本
  • 在外部Web工具中为节点js(C:\Program Files\nodejs)添加路径(参见Rob Scott的回答),
  • 将nodejs路径移到$(PATH)之上。

我只是运行npm重建而不是npm重建node-sass和问题消失了…我不知道背后的魔力是什么。

这对我很有用 删除node_modules,然后从IDE恢复包,然后npm rebuild node-sass

这通常是因为运行npm install后环境发生了变化。 运行npm rebuild node-sass为当前环境构建绑定。

node-sass运行安装脚本下载所需的二进制文件。如果没有设置环境变量、. npmrc变量或进程参数,则二进制文件将使用当前进程平台、架构和Node ABI版本确定。因此,如果你在一个应用程序中运行node install,然后尝试在具有不同平台/架构/ABI的应用程序中运行node-sass,则不会下载二进制文件。解决方案是手动下载二进制文件或使用环境变量(SASS_BINARY_NAME)或. npmrc变量(sass_binary_name)修复二进制文件版本

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

检查您的系统:您的系统是否安装了2个不同的Node.js

如果从nodejs安装node,默认安装目录为 C:\Program Files\nodejs 我在这里安装6.xx节点版本。

检查您的VS外部Web工具目录 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External 我在那里安装5.xx节点版本。

一个围绕的工作是:

  • 备份C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External目录。
  • 复制C:\Program Files\nodejs目录内容和
  • 粘贴到 C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Web\External目录。
  • 从解决方案中删除node_modules目录。
  • 重新运行项目。 如果您收到错误消息,请第二次重新运行项目。

如果这不起作用

  • 从解决方案中删除node_modules目录。

注意:$是命令提示符

$  npm install
…
$ npm run build:dev

重新运行项目。

请记住重命名xxx.node文件(在我的情况下win32-x64-51)binding.node并粘贴到xxx文件夹(在我的情况下win32-x64-51),

对于Visual Studio 2015/2017,右键单击您的package.json并单击还原包。

这将确保运行Visual Studio Tools外部工具中的npm,并在此基础上重建绑定。

为我工作:

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

在某些情况下,您需要卸载并安装node-sass库。尝试:

npm uninstall --save node-sass

npm install --save node-sass

看看这对我的工作, 堆栈链接在这里

对于切换到nvm系统节点的人,如果您没有删除~/.npm~/.node-gyp文件夹,则可能会出现此问题,因为~/.node-gyp可以中的节点版本可能不同。

在任何情况下,这些文件夹都应该被删除。

@core114的回答建议再次卸载和安装sass软件包对于手动过程可以正常工作,但对于自动化部署/CI/CD,您需要更通用的方法。对我有效的是Continuos部署不同的环境是:

  1. 在部署之前使用rimraf删除旧的node_modules

    node_modules

  2. 在npmpackage.json中更新sass包并提交源代码控制。

对于下一次部署,它将自动刷新所有环境的sass。

尝试添加后缀--force

npm rebuild node-sass --force

对我来说,问题是任务运行器资源管理器针对的是我项目的解决方案。当我使用任务运行器资源管理器刷新按钮旁边的下拉列表更改为项目本身时,它显示了相关任务。


**只需执行:**npm rebuild node-sass --force



如果由于某种原因,上面的方法不适合你,试试这个:
  1. 删除node_modules下的node-sass文件夹
  2. npm install

在我的情况下,它也找不到Python

以下过程解决了问题(Windows):

npm rebuild node-sass --force
-- cannot find python.exe, if you have Python installed, add it to your path:
set PYTHON=C:\Python27\Python.exe
-- else: download python "Windows x86-64-MSI" installer from https://www.python.org/downloads/release/python-2714/
-- install python
-- at installation start check: add env variable to path
-- after successfull installation:
npm rebuild node-sass --force
-- finished successfully

对于Mac:

  1. -CMD+SHIFT+G
  2. -/us r/本地/lib/节点-sass
  3. -右键单击并重命名:应该仍然是相同的node-sass
  4. -然后运行:npm install node-sass-g

这固定。

  1. 在node_modules/node-sass/供应商/linux-x64-46/中创建一个新目录。
  2. 下载文件来自https://github.com/sass/node-sass/releases
    (linux-x64-59_binding.node)基于你的版本。
  3. 将其粘贴到node_modules/node-sass/供应商/linux-x64-46/重命名为binding.node

我是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. 步骤1:使用命令检查您的node-sass版本:npm view node-sass version(步骤4中的{your version}
  2. 步骤2:到达Node-Sass发布
  3. 步骤3:获取您的版本并在每个版本下列出的资产中找到丢失的节点,并下载文件
  4. 步骤4:进入PC的C:\Users\{User}\AppData\Roaming\npm-cache\node-sass\{your version}\并将下载的.node文件放入版本文件夹中

你已经完成了。

在我的例子中,node-sass版本是4.9.0,缺少的节点是win32-x64-57_binding.node,所以我从4.9.0上线下载了.node文件并遵循步骤4。

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

受到@Rob Scott解决方案和其他指出我们可以安装两个版本的Node.js的启发,我去了C:\Program Files (x86)\nodejs并意识到除了VS默认安装之外,我还安装了一个node.js版本。

我的解决方案很简单:

  • 转到工具>选项>项目和解决方案>Web包管理>外部Web工具
  • 单击add an entry(右上角按钮块的最左侧)
  • 输入C:\Program Files (x86)\nodejs,按enter进行验证
  • 把它放在列表的顶部
  • 享受

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

npm rebuild node-sass --force

或者,如果您在容器中使用node-sass:

docker exec <container-id> npm rebuild node-sass --force

当node-sass没有当前操作系统的正确绑定时,会发生此错误。

如果您使用Docker,则通常在将node_modules直接添加到Dockerfile中的容器文件系统(或使用Docker卷挂载它们)时发生此错误。

容器架构可能与您当前的操作系统不同。例如,我在macOS上安装了node-sass,但我的容器运行Ubuntu。

如果强制node-sass从容器中重建,node-sass将下载容器操作系统的正确绑定。

请参阅我的再造案以了解更多信息。

在构建docker映像并尝试在本地运行它时,我遇到了同样的问题。您需要添加一个包含以下内容的. docker忽略文件: .DS_Store . git . gitignore .的想法 日志/* 目标 tmp node_modules 客户/node_modules 规范/内部/公共资产 公共/资产

对我来说,是maven-war-plugin将过滤器应用于文件并损坏了woff文件。

<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>dist</directory>
<filtering>true</filtering>
</resource>
</webResources>
</configuration>

删除<过滤>true

如果你需要过滤,你可以这样做:

<plugin>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>dist</directory>
<excludes>
<exclude>assets/**/*</exclude>
</excludes>
<filtering>true</filtering>
</resource>
<resource>
<directory>dist</directory>
<includes>
<include>assets/**/*</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>

我从VS 2017专业版升级到企业版时遇到了这个问题

  1. 关闭VS
  2. 删除node_modules
  3. 开放VS
  4. 右键单击package.json并选择“恢复包”

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

当您在工作站中运行Node.js的更新并且在全局使用node-sass时,就会发生这种情况。

所以你应该在全球范围内卸载node-sass

npm uninstall -g node-sass

然后你必须再次在全球范围内安装它

npm install -g node-sass

我尝试了我找到的所有方法。

我注意到该文件夹的一些奇怪行为。当我试图从VS终端“cd”到“node_sass”文件夹时,它告诉“文件夹未找到”,但在Finder中看到。

VS终端的chmod即使使用sudo命令也找不到文件夹。

我已经从本地MacO终端进行了chmod-ed,并且刚刚用节点重建。

对于我的特殊情况,上述答案都不起作用。那么它起作用了:

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

npm cache verify检查缓存中是否没有任何内容

npm install

虽然我没有尝试重现序列,但它是上述工作的组合。 你也可以试试:

npm install --save node-sassnpm install node-sass -g

npm rebuild node-sass
npm install bindings
  1. 删除node_modules文件夹。
  2. 再次安装依赖项。(npm i)

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

我是这样解决的:

1)从存储库下载缺少的绑定文件。

2)重命名文件binding.node

3)如果不存在,请创建node_modules/node-sass/vendor/darwin-x64-11(错误消息路径)目录。

4)将绑定文件添加到node_modules/node-sass/vendor/darwin-x64-11

对我来说,当我运行npm install时,它会审核已安装的软件包并显示“发现1个高严重性漏洞”并通过运行

npm audit fix

成功了。如果对某人有帮助就发帖。

更新:分享我的错误日志:

ERROR in ./src/styles.scss (./node_modules/@angular-devkit/build-angular/src/angular-cli-files/plugins/raw-css-loader.js!./node_modules/postcss-loader/src??embedded!./node_modules/sass-loader/lib/loader.js??ref--14-3!./src/styles.scss)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):
Error: Missing binding ..\node_modules\node-sass\vendor\win32-x64-57\binding.node
Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 8.x


Found bindings for the following environments:
- Windows 64-bit with Node.js 10.x


This usually happens because your environment has changed since running `npm install`.
....

它确实要求我这么做

Run `npm rebuild node-sass` to download the binding for your current environment.

只需刷新您的npm缓存并:

npm cache clean --force
npm install

它总是在同一种情况下为我工作。

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

npm install -g sass

我通过将JAVA_HOME从x86更改为x64来修复此问题。Maven在x86上运行,但节点使用x64。删除 /node并 /node_modules并重新构建。

*Docker相关答案在这里*

回答您是否看到此问题或类似问题,并且正在使用Docker。

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

解决方案:

添加.dockerignore,并在内部添加:

node_modules

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

打开Visual Studio 2017
转到工具->选项…
转到项目和解决方案->Web包管理
将$(PATH)移动到该列表的顶部并关闭该窗口。
重新启动Visual Studio。
这在我的情况下有效,因为我的节点版本是11. x

只要运行评论就是这样。

npm构建节点配置

享受你的编码…

请在根文件夹上写下以下命令。

npm构建节点配置

100%工作…

如果你在Mac上,请安装Xcode。

这可能不会发生在其他人身上,但在我的情况下,当我决定重新启动我的项目(遵循不同的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 service”(或查看localhost:8081)。

以防万一这让别人困惑了半个小时,或者为了笑和咯咯笑。

node-sass节点模块使用darwin二进制文件,该文件取决于节点的版本。当二进制文件未下载或下载错误的二进制文件时,会出现此问题。

节点sass错误]][1]

重新安装节点模块将下载预期的node-sass二进制文件:-

对于Mac用户:

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

对于Windows用户:

rmdir node_modules
npm cache clean --force
npm i
npm rebuild node-sass --force

但对于某些用户,您需要检查您的节点版本与node-sass版本的兼容性。使用下表使其兼容并再次运行上面的命令来修复此问题。

这是node-sass的节点兼容性表

NodeJS | Supported node-sass version | Node Module
Node 17     7.0+                        102
Node 16     6.0+                        93
Node 15     5.0+                        88
Node 14     4.14+                       83
Node 13     4.13+, <5.0                 79
Node 12     4.12+                       72
Node 11     4.10+, <5.0                 67
Node 10     4.9+, <6.0                  64
Node 8      4.5.3+, <5.0                57
Node <8     <5.0                        <57

如果问题仍未修复,请检查node-sass支持的环境列表:-https://github.com/sass/node-sass/releases/

删除 /node-modules文件夹并再次安装,或在删除后运行gradle任务部署

/Users/warren/Sites/random-docs/my-cms/node_modules/node-sass/vendor/darwin-x64-11/binding.node

它解决了你的问题。

节点sass的员额依赖关系没有安装,而node-sass内部没有package.json

手动运行它为我解决了

node node_modules/node-sass/scripts/install.js

图片来源:链接

Windows10 这对我来说很有趣… 为了解决这个问题,我必须做以下所有事情。 1.显然node-sass不被一些最新版本的Node.js支持 所以我不得不卸载Node-v 12.14.1,并删除C:/Program Files中的nodejs目录。 2.)重新安装早期版本的Node(对我来说10.16.2有效)。注意:我最初下载了x86版本,所以如果您的系统是x64,请下载x64版本… 3.)从这里我不得不删除我的整个项目并重新克隆它。之后一切都很好。

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

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_modules/node-sass/脚本/install.js

现在运行

npm启动或纱线启动

运行以下命令,它对我来说很好。

npm install node-sass -g

npm rebuild node-sass

nvm use 10.16.3

node node_modules/node-sass/scripts/install.js

ng serve --poll=2000

我能够解决问题 npm安装--全球--生产windows-构建工具

npm install--msvs_version=2015

开发依赖 请求示例:响应示例:"Babel-core":"^6.26.0", 请求示例:响应示例:"badel-loader":"^7.1.4", 请求示例:响应示例:"Babel-plugin-transform-装饰器-遗留":"^1.3.5", 请求示例:响应示例:"tabel-preset-env":"^1.6.1", 请求示例:响应示例:"Babel-preset-React":"6.24.1", 请求示例:响应示例:"badel-preset-stage-2":"^6.24.1", 请求示例:"css-loader":"^0.28.11",请求示例: "mini-css-plugin":"^0.4.0",//额外配置文件列表 请求示例:响应示例:"node-sass":"4.11.0", 请求示例:响应示例:"sass-loader":"^6.0.7", 请求示例:响应示例:"webpack":"^4.4.1", 请求示例:响应示例:"webpack-cli":"3.1.0", "webpack-dev-server":"请求参数 }

我尝试了上述所有方法,没有任何效果,我试图将节点版本与node-sass版本匹配,当我决定去node.js官网,下载最新的节点版本(目前是v14,我在v12上)并安装它。这终于解决了我的问题!您的node-sass版本可能领先于您的node.js版本。

这对我有用: yarn add --force node-sass@4.14.1yarn add --force node-sass

在linux ubuntu 20.04上,我需要几个步骤,首先将节点降级到一个适当的版本,删除node_modules,运行ar n install,最后运行sudo yarn add node-sass@4.13.0 --force。节点版本10.0.0。 #36825;的工作方式

检查您的npm版本是否与您项目所需的相同

在我的例子中,我发现package-lock.json中的node-sass版本与package.json.中的node-sass版本不同。

  1. 删除文件夹节点模块
  2. 删除package-lock.json
  3. 安装python2.7
  4. 添加C:/Python27; C:/Python27/环境变量脚本->路径
  5. 在Powershell中,以管理员身份运行->npm install-g node-gyp
  6. 在我的工作文件夹中->npm install

希望这对你也有效

我做了所有这些在Linux薄荷:

  • 删除node_modules
  • Rannpm install
  • Rannpm rebuild node-sass

但它没有解决这个问题,仍然收到关于node-sass的错误。

我再次尝试使用sudo重建node-sass的命令,即sudo npm rebuild node-sass,它终于工作了!

我,只是为了添加我在Windows上,我通过删除我的用户的node_module文件夹中的node-sass条目来解决我的问题(C:/user/$username/node_modules/node_sass)

重建和删除node_sass以前什么都没做,现在我的问题解决了!

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

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

进一步到Abdelsalam Megahed的简短回答,其中包含大部分溶液…(即查看他的答案并首先这样做)

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

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

最后一步是编辑tsconfig.json文件并在"compilerOptions":下添加"baseURL": ".",,如下所示:

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

问题在这一点上得到了解决。

注意:可能需要硬重置CtrlF5页面才能看到更改(即使使用no的)。

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

npm rebuild node-sass --force

在您的项目文件夹中。像我一样,您的问题得到解决的可能性很高。如果不成功,请尝试以下操作:

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


npm start

如果您到了这个线程的末尾,事情仍然不起作用。这可能很愚蠢,但请尝试验证您的文件夹中是否有这些文件:

  • 节点版本
  • . nvmrc

他们是为什么事情不适合你的罪魁祸首。使用节点版本更新文件,然后重新运行此线程中其他人提供的过程。它会起作用的。;)

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

错误发生是因为我在尝试构建docker映像之前做了一个npm installnpm install正确地将MacOS版本的node-sass拉入我的node_modules,然后我将node_modules复制到运行Linux的docker映像。这失败了,因为它无法在Linux上运行macOS版本的node-sass。

在我的情况下,解决方案是在npm install步骤之后将其添加到我的makefile中:

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