关于node.js:如何Nodejs项目打包为一个可执行文件

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

PKG
  • pkg可将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'));

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理