如何Node.js项目打包为一个可执行文件

坚果面包 -
如何Node.js项目打包为一个可执行文件
如何将Node.js项目打包为一个可执行文件PKGpkg可将Node.js项目打包为一个单独的可执行文件,可在未安装Nodejs的机器上运行。支持win、linux等多系统。pkg的打包原理简单来说,就是将js代码以及相关的资源文件打包到可执行文件中,然后劫持fs里面的一些函数,使它能够读到可执行文件中的代码和资源文件。用法

pkg使用比较简单,执行下pkg -h就可以基本了解用法,基本语法是:pkg [options] <input>

<input>可以通过三种方式指定:

1.一个脚本文件,例如pkg index.js;
2.package.json,例如pkg package.json,这时会使用package.json中的bin字段作为入口文件;
3.一个目录,例如pkg .,这时会寻找指定目录下的package.json文件,然后在找bin字段作为入口文件。

[options]中可以指定打包的参数:
1.-t指定打包的目标平台和Node版本,如-t node6-win-x64,node6-linux-x64,node6-macos-x64可以同时打包3个平台的可执行程序;
2.-o指定输出可执行文件的名称,但如果用-t指定了多个目标,那么就要用--out-path指定输出的目录;
3.-c指定一个JSON配置文件,用来指定需要额外打包脚本和资源文件,通常使用package.json配置。

使用:

在package.json中的pkg字段中指定打包参数,使用npm scripts来执行打包过程,例如:

{
...
"scripts": {
"build": "pkg index.js"
}
}

关于项目中的配置文件处理,如环境变量等。因为这些配置文件会跟着不同的部署环境进行更改,所以为了方便更改,一般不希望把配置文件打包到exe。为了避免pkg自动地将配置文件打包到exe中,代码中不要采用__dirname, 而是采用相对于process.cwd()的方法读取:

// 不推荐
const config = require((path.join(__dirname, './config.js'))
 
// 推荐
const config = require(path.join(process.cwd(), './config.js'));
特别申明:本文内容来源网络,版权归原作者所有,如有侵权请立即与我们联系(cy198701067573@163.com),我们将及时处理。

Tags 标签

node.js

扩展阅读

加个好友,技术交流

1628738909466805.jpg