【问题标题】:Node-sass build issue with DockerDocker 的 Node-sass 构建问题
【发布时间】:2021-02-15 04:47:45
【问题描述】:

我在 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 标头”错误。

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

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

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

【问题讨论】:

  • 你能分享你的DockerFile吗

标签: node.js angular docker node-modules node-sass


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2017-06-16
    • 1970-01-01
    • 2019-09-03
    • 2022-08-11
    • 1970-01-01
    • 2023-03-25
    • 2023-03-30
    • 2022-10-20
    • 2021-07-21
    相关资源
    最近更新 更多