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

6次阅读

共计 949 个字符,预计需要花费 3 分钟才能阅读完成。

如何将 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'));
正文完
 0