如果将NodeJs项目打包为一个可执行的文件,那么对于部署、安装来说,很简单,甚至是运行环境都不用再做配置,对源码的保护性也有很多的好处
操作步骤
全局安装pkg库,也可以不局部安装,全局安装更方便
npm install pkg -g
以express搭建一个默认的web项目为例,修改package.json文件,如下:
{ "name": "test", "version": "0.0.0", "private": true, "bin":"./bin/www", "scripts": { "start": "node ./bin/www", "pkg": "pkg . -t node10-win-x64 -o app" }, "pkg":{ "assets":["public/**/*","views/*"] }, "dependencies": { "cookie-parser": "~1.4.3", "debug": "~2.6.9", "express": "~4.16.0", "http-errors": "~1.6.2", "jade": "~1.11.0", "morgan": "~1.9.0" }, "bundledDependencies": ["express"] }
特别注意:
- 需要指定
bin
为项目启动文件,例如"bin":"./bin/www",
pkg
会寻找指定目录下的package.json
文件,然后在找bin
字段作为入口文件。-t
指定打包的目标平台和Node版本,例如:-t node6-win-x64,node6-linux-x64,node6-macos-x64
可以同时打包3个平台的可执行程序-o
指定输出可执行文件的名称,但如果用-t
指定了多个目标,那么就要用--out-path
指定输出的目录scripts
和assets
用来配置未打包进可执行文件的脚本和资源文件,文件路径可以使用glob通配符。
- 需要指定
- 运行
npm run pkg
打包出来你想要的可执行文件