node app 打包工具pkg的具体使用
node打包可执行文件的工具有很多。node-packer是国人写的,但一年前就停止更新了。而nexe一到fetchingprebuiltbinary就报错,放弃了,最终选择了pkg。
这个项目很神奇,直接将node.js项目打包成windows可以直接执行的exe文件(也支持FreeBSD、linux、macos、arm系统),甚至不需要安装Node.js,且无须修改你项目中的任何代码!
命令行打包
pkg-tnode10-macos-x64index.js
package.json配置
如果不想每次都输入这么多参数,则需要在packge.json文件增加一个bin和pkg选项:
``` "pkg":{ "scripts":[],//不需要striped的js文件 "targets":[//打包选项,格式为:node版本-平台类型mac或windows-架构 "node10-win-x64", "node10-macos-x64" ], "output":"proxy"//可执行文件名,比如proxy-win.exe或proxy-macos }, "bin":"index.js"//app的启动文件 ```
然后,你只需要用pkg.就可以了。
注:pkg最多只支持到node10版本。node11还暂不支持。
Assets
有一些文件,它不是js文件,也没有在代码中require过,比如html和css文件。pkg就无能为力了。如果想将这些文件也打包到可执行文件中,将它们放到pakcage.json的pkg的assets数组中就可以了,比如:
"assets":[//需要被打包的资源文件(即没有在代码中被require过的文件) "index.html" ],
动态加载的文件
有一些文件,你不想打包进去,比如一些配置文件、json文件,可以在require时指定绝对路径,比如data目录下的users.json文件:
constusers=require(path.join(process.execPath,'../data/users.json'))
然后在打包后,将在可执行文件的同级目录下新建data目录,再将users.json文件拷贝到data目录即可。
这样,以在运行时改变app的一些参数。
注意,修改users.json文件内容后,需要重启可执行文件才能生效。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。