首页 > 解决方案 > 使用 Windows 上的构建工具升级到 Node 11.1 后的 node-sass 大小

问题描述

最初我使用的是 Node v10(我相信),当生成一个新的 Angular 项目(v7)时,我的 node_modules 是“适度的”~140 Mb。

然后我决定升级到 Node v11.1 并安装构建工具,安装程序现在可以选择允许您安装。我的 node_modules 大小超过 700 MB。罪魁祸首是 node-sass 包,它现在正在下载整个项目(cpp 文件、.sln 和所有文件)并在初始 npm 安装时完全编译(使用 node-gyp)。

有没有办法将这种行为改变为在没有安装构建工具的情况下做事的方式?(没有手动卸载节点自动安装的构建管道)

或者有什么我没有看到的优势?对我来说,这一切都很好(包括所有与 scss 和 sass 相关的东西),而占用空间没有大幅增加。

标签: node.jsangularnode-gypnode-sass

解决方案


所以,我发现了发生了什么。

当前版本的 Angular(cli 版本 7.0.6)安装 node-sass 版本为 4.9.3。版本 4.9.3 不支持节点 v11。4.10.0添加了对节点 v11 的支持。因此,node-sass 正在运行的安装脚本找不到要从 github 下载的预构建二进制文件,并回退到构建源文件(这会导致 400 MB 空间浪费)。

这就是为什么在我更新到最新的节点版本后问题开始出现的原因。

目前有2个解决方案:

  • 坚持使用节点的 LTS v10(有一个预构建的二进制文件)
  • 手动升级到最新版本的 node-sass 并希望 angular 不会因此而崩溃

我选择了选项 1 并安装了 LTS 节点版本。这是一个可能会及时解决的问题,因为 Angular 更新了它的 node-sass 依赖关系。暂时我希望答案能帮助面临同样情况的人。


推荐阅读