【问题标题】:Reduce amount of files (or dependencies) in node_module folder减少 node_module 文件夹中的文件(或依赖项)数量
【发布时间】:2021-03-14 06:24:09
【问题描述】:

我们正在运行多个 node.js 微服务。 我们部署过程的一部分有一个“解压缩任务”,由于节点模块文件夹中的文件数量,它需要 10 多分钟。 由于安全问题,我们无法在运行这些微服务的服务器上运行 npm install。

我想知道是否有任何常用方法可以减少文件数量以及节点模块文件夹中的依赖项? 因为即使我将文件夹的大小减少了几十兆字节,文件的数量仍然很大。

【问题讨论】:

    标签: node.js package node-modules


    【解决方案1】:

    可以将整个项目捆绑到单个文件和/或可执行文件中。 要捆绑您的项目,您可以使用 ncc 并像这样执行它:

    ncc build input.js -o dist
    

    这将在 dirst 文件夹中创建 index.js,并将所有其他文件捆绑在一起。也可能需要本机节点文件。 如果您的代码库中有动态需求,这可能是个问题。

    要创建单个二进制文件,您可以使用pkg。支持不同节点版本,跨平台构建:

    pkg index.js
    

    创建文件“index-linux”、“index-macos”和“index-win.exe”。

    当然,您可以很好地组合这两个包。 这应该会减少您要部署的文件数量。 当然,这使得通过它进行调试相当困难。所以走那条路时要记住这一点!

    【讨论】:

    • 看起来很有趣,但我没有找到有关 input.js 文件需要包含哪些内容的任何信息?你有没有机会对此进行扩展?附带说明一下,我需要检查它是否可以工作,因为目前我们正在 IIS 上运行这些服务(在“iis-node”的帮助下)
    • index.js 文件只是您的应用程序的入口点,其中包含许多需求。令人讨厌的是,它也可以有不同的名称,所以不用担心。其结果是捆绑文件或带有 nodejs 的可执行文件。所有其他 node_modules 在任何一种情况下都捆绑在一起,因此您最终得到一个文件。
    猜你喜欢
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 1970-01-01
    相关资源
    最近更新 更多