Nodejs v19.x 支持打包可执行单文件
特性介绍:
有的语言原生工具链就支持打包单独可执行文件,如:go build
dart complite exe
有的有社区解决方案,如:PyInstaller
nodejs社区的:ncc
/pkg
如今,nodejs 在 v19.x 引入实验性单独可执行文件,提供了官方打包工具链。
使用
基础环境:安装 Nodejs v19.x 及以上,只有最新版本支持
1 | # 1.创建 js 文件 |
以上是官方示例,通过第三步可以看出,实际上是 postject
在起作用, 可以自行安装使用
应用
目前只能打包一个 js 文件, 与 pkg 是打包一整个文件夹不同,是否就不能应用了呢?顺势可以想到把整个项目打包为单独的 js 文件不就解决了这个问题了吗?这便是 ncc(Compile a Node.js project into a single file. Supports TypeScript, binary addons, dynamic requires.), 尝试一下。
1 | mkdir singleapp |
由于打包了 nodevm 所以生成的二进制文件会比较大,单文件打包结果是 83Mb,但是 node 二进制原包是 90MB,应该是有压缩,可以使用 upx
进行二进制加壳压缩。
结言
Nodejs 多年呼吁的打包功能官方终于开始启动了,还有一些瑕疵,而且实验性功能改动到后边会比较大,可以多多跟进,目前的官方讨论区在
以前社区百花齐放提供了很多的打包方案,pkg
, jsexe
, ncc
, bytecode
等等,其实 webpack
这些也是可以支持后端项目打包的,也可以打包合并为单独 js 文件,复用 js 打包生态,源码混淆,sourcemap 支持等等
本文作者 : 萧逸雨
原文链接 : http://qiubo.ink/2023/03/16/Nodejs-v19-x-支持打包可执行单文件/
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!