我们都知道 Node.JS 的项目本身是没办法编译成二进制可执行文件的, 这给我们很多的业务场景造成了一些问题, 比如要给客户演示程序的时候, 可能还得安装 node 环境, 然后在安装一堆的依赖包, 这还必须是网络环境较好的情况下, 而有时候, 一般企业如果安全看的特别重, 限制在局域网内访问互联网, 那么连包都没办法安装, 显然对于你和对于客户都是不友好的情景, 那么通过我们今天介绍的这个工具, 可以直接将 Node.JS 项目打包成可执行文件, 直接可以在没有 node 环境下的 freebsd,Linux,alpine,macos,win 上运行.
Node.JS 项目可以通过 kpg 工具进行打包.
pkg 打包的原理:
pkg 实际上并不是直接将程序转换成可执行文件, 而是将 node 环境一起打包到了程序中, 这样就可以做到不用在没有 node 环境下的电脑上运行 node 项目了, 是不是很方便. 下面我就将带领大家一起来看下如何使用 pkg 打包.
使用 pkg 打包实例:
简单看下项目的目录结构和代码, 首先你得初始化一个 express 项目, 添加 express 的依赖
运行一些 index.JS 文件, 浏览器打开看下效果
我们这是直接在项目中运行的, 结果如上图所示, 现在我们的项目还是一个 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
然后需要等待一段时间, 最终结果如下
我们打开我们的 index-win.exe 测试下
pgk 是一个将 Node.JS 项目打包成可执行文件的工具, 我们可以用它做很多事情, 本文只是简单举例, 更多复杂的配置, 可以配合官网介绍, 然后运用到自己项目中, 希望对你有帮助.
来源: http://www.css88.com/qa/node-js/10706.html