Node-sass Docker 的构建问题

Node-sass build issue with Docker

我正在 Docker 工作,将 Angular 5 应用程序容器化。此应用程序使用 node-sass 4.7.2。该应用程序在 Windows 环境中运行良好。在“npm install”期间,它下载 node-sass 或使用 .npmrc 文件中定义的 sass-library-path 构建相同的

但是,docker图像创建过程中出现了很多问题。它会自动尝试从 https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-72_binding.node 下载 binding.node 文件 但是,linux-x64-72 没有发布。因此,它会下载一个虚拟文件(大小约为 4KB)并抛出“无效的 ELF header”错误。

如果我在 sass-binary-path(https://github.com/sass/node-sass/releases/download/v4.7.2/linux-x64-59_binding.node) 中指定了一些有效的 URL,它会抛出“找不到模块”错误。

我也尝试过 npm rebuild node-sass。我也从网上看到了很多答案。许多答案建议我从本地环境复制 node-modules 。你知道,这绝不是 Docker 的选项。我不能要求开发人员也在存储库中提交 node-modules。

有什么办法可以解决这个问题吗?或者在 angular 应用程序中是否有任何简单的解决方案来解决它,比如不使用 node-sass?

package.json 中指定了节点 sass 版本。对于相应的 node-sass 版本,os linux-x64-72_binding.node 没有可用的库。 因此,我在 package.json 中升级了 node-sass 版本,Linux 库可用。

然后,它下载了文件,没有任何问题。