如何将Node.js项目打包成可执行文件PKGpkg可以将Node.js项目打包成单个可执行文件,可以在不支持的机器上使用安装Nodejs运行。支持win、linux等多种系统。简单来说,pkg的打包原理就是将js代码和相关资源文件打包成一个可执行文件,然后劫持fs中的一些函数,使其能够读取可执行文件中的代码和资源文件。用法pkg使用起来比较简单,执行pkg-h就可以基本了解用法。基本语法为:pkg[options]可以通过三种方式指定:1.脚本文件,如pkgindex.js;2、package.json,如pkgpackage.json,则使用package.json中的bin字段作为入口文件;3.一个目录,比如pkg.,然后在指定目录下寻找package.json文件,然后寻找bin字段作为入口文件。[options]可以指定打包参数:1.-t指定打包的目标平台和Node版本,比如-tnode6-win-x64,node6-linux-x64,node6-macos-x64可以同时打包3个平台时间可执行程序;2.-o指定输出可执行文件的名称,但如果用-t指定了多个目标,则使用--out-path指定输出目录;3.-c指定一个JSON配置文件,用于指定额外的打包脚本和资源文件,通常使用package.json配置。使用:在package.json中的pkg字段指定打包参数,使用npmscripts执行打包过程,例如:{..."scripts":{"build":"pkgindex.js"}}关于project配置文件处理,比如环境变量等。因为这些配置文件会随着部署环境的不同而改变,为了方便修改,一般不希望将配置文件打包成exe。为了防止pkg自动将配置文件打包成exe,代码中不要使用__dirname,而是使用process.cwd()相关的方法读取://constconfig=require((path.join(__dirname不推荐,'./config.js'))//推荐constconfig=require(path.join(process.cwd(),'./config.js'));
