如何缩减经pkg打包的两个独立Node.js应用总文件体积?
用pkg打包时提取公共Node.js运行时为共享库的方法
完全可以做到!pkg工具支持将公共的Node.js解释器提取为共享库,让多个打包后的可执行文件共用,从而大幅减少总分发体积,具体操作步骤如下:
生成共享Node.js运行时
先通过pkg的自定义构建模式,单独生成包含Node.js解释器的共享库文件(不同系统下格式不同:Windows是.lib/.dll,Linux是.so,macOS是.dylib)。执行命令:pkg --public --targets node18-win-x64,node18-linux-x64,node18-macos-x64 --output node_runtime执行后会得到对应平台的共享运行时文件,这个就是两个可执行文件要共用的公共部分。
基于共享库打包你的JS文件
针对每个需要打包的JS文件,在打包时指定使用刚才生成的共享运行时,命令如下:pkg --public --runtime node_runtime --output app1 app1.js pkg --public --runtime node_runtime --output app2 app2.js这样生成的
app1和app2体积会很小,因为它们不再嵌入完整的Node.js解释器,只包含你的业务代码和调用共享库的逻辑。关键注意点
- 共享运行时和可执行文件必须保持相同的Node.js版本、平台和架构,否则会出现运行错误。
- 分发时要把两个可执行文件和共享库放在同一个目录下,或者确保共享库在系统默认的库搜索路径里,不然程序找不到依赖会启动失败。
- 不同操作系统的共享库不通用,需要分别为目标平台构建对应的共享库和可执行文件。
内容的提问来源于stack exchange,提问作者Cody
相关产品推荐
相关产品推荐

