引⾔
视野图
我们都知道nodejs的项⽬本⾝是没办法编译成⼆进制可执⾏⽂件的,这给我们很多的业务场景造成了⼀些问题,⽐如要给客户演⽰程序的时候,可能还得安装node环境,然后在安装⼀堆的依赖包,这还必须是⽹络环境较好的情况下,⽽有时候,⼀般企业如果安全看的特别重,限制在局域⽹内访问互联⽹,那么连包都没办法安装,显然对于你和对于客户都是不友好的情景。还有⼀种情况:如果我们演⽰项⽬时,把代码交给对⽅部署,我们⾃⼰也不放⼼啊:Nodejs代码是明⽂JS代码,代码泄露怎么办?当然,防代码泄露可以⽤JShaman平台对JS代码进⾏混淆加密。 pkg可以直接将nodejs项⽬打包成可执⾏⽂件,直接可以在没有node环境下的freebsd,linux,alpine,macos,win上运⾏。
pkg打包的原理
pkg实际上并不是直接将程序转换成可执⾏⽂件,⽽是将node环境⼀起打包到了程序中,这样就可以做到不⽤在没有node环境下的电脑上运⾏node项⽬了,是不是很⽅便。下⾯我就将带领⼤家⼀起来看下如何使⽤pkg打包。测试⽤例使⽤的是nodejs的express
组合式桥架
使⽤场景
在没有来源的情况下制作商业版的应⽤程序
在没有来源的情况下制作应⽤的演⽰/评估/试⽤版
⽴即为其他平台制作可执⾏⽂件(交叉编译)
制作某种⾃解压存档或安装程序
⽆需安装Node.js和npm来运⾏打包的应⽤程序
⽆需下载⽆数个⽂件npm install来部署您的应⽤程序。将其部署为单个⽂件
将您的资产放在可执⾏⽂件中,使其更具可移植性
针对新的Node.js版本测试您的应⽤程序⽽不安装它
举例
简单看下项⽬的⽬录结构和代码,⾸先你得初始化⼀个express项⽬,添加express的依赖
运⾏⼀些index.js⽂件,浏览器打开看下效果
pfc电感
我们这是直接在项⽬中运⾏的,结果如上图所⽰,现在我们的项⽬还是⼀个js⽂件,然后相互依赖,接下来我们使⽤pkg
安装(因为电脑是windows系统,就在windows系统下运⾏)
安装⾮常简单,需要全局安装
npm install -g pkg
然后我们使⽤pkg --help先看下有哪些可⽤的命令
铆压机pkg可以⼀次为多个⽬标计算机⽣成可执⾏⽂件。可以通过--targets 选项指定以逗号分隔的⽬标列表。规范⽬标由3个元素组成,例如⽤短划线分隔,node6-macos-x64或者node4-linux-armv6
断头锁配置
打包过程中pkg会解析项⽬中的资源,检测到require,遍历项⽬的依赖项并将它们包含到可执⾏⽂件中。有些时候我们需要⼿动加⼊资源⽂件路径,⽐如我们这个项⽬中的views,我们需要改⼀下package.json
"pkg": {
"assets": "views/**/*"
}
打包(命令很简单)
pkg index.js
然后需要等待⼀段时间,最终结果如下
我们打开我们的测试下
运⾏成功,然后打开浏览器,和之前⼀样的效果
总结
台风实时监控系统pgk是⼀个将nodejs项⽬打包成可执⾏⽂件的⼯具,我们可以⽤它做很多事情,本⽂只是简单举例,更多复杂的配置,可以配合官⽹介绍,然后运⽤到⾃⼰项⽬中,希望对你有帮助。
喜欢这篇⽂章?欢迎打赏~~