node.js - 减少 node_module 文件夹中的文件(或依赖项)数量
问题描述
我们正在运行多个 node.js 微服务。我们部署过程的一部分有一个“解压缩任务”,由于节点模块文件夹中的文件数量,它需要 10 多分钟。由于安全问题,我们无法在运行这些微服务的服务器上运行 npm install。
我想知道是否有任何常用方法可以减少文件数量以及节点模块文件夹中的依赖项?因为即使我将文件夹的大小减少了几十兆字节,文件的数量仍然很大。
解决方案
可以将整个项目捆绑到单个文件和/或可执行文件中。要捆绑您的项目,您可以使用ncc并像这样执行它:
ncc build input.js -o dist
这将在 dirst 文件夹中创建 index.js,并将所有其他文件捆绑在一起。也可能需要本机节点文件。如果您的代码库中有动态需求,这可能是一个问题。
要创建单个二进制文件,您可以使用pkg。它支持不同的节点版本并构建跨平台:
pkg index.js
创建文件“index-linux”、“index-macos”和“index-win.exe”。
当然,您可以很好地组合这两个包。这应该会减少您要部署的文件数量。当然,这使得通过它进行调试相当困难。所以走这条路时要记住这一点!
推荐阅读
- javascript - 如何获取存储在开放图层变量中的鼠标坐标?
- node.js - Cloud9 不会在 nodejs lambda 中公开 bash_profile 导出
- python - Web Scraper 不会转到正确的页面
- visual-studio-code - VSCode 正则表达式从特定组中查找和选择数据(不替换)
- c++ - 无法访问派生类中的基类方法
- java - set background for itemView programmatically
- python - WinPython:“NameError:名称'时间'未定义”,但仅在函数内部
- ios - “此时无法安装此应用程序。” 只有在我尝试第二次以上运行该应用程序后我才能得到它
- mongodb - 无法在 Ubuntu 18.4LTS 上安装 CURL(需要 libcurl4),但安装它会删除 libcurl3,因此 mongo 无法正常工作
- python - Python 类属性长灵