使用pkg编译打包nodejs程序成执行文件

本文介绍了如何使用pkg工具将NodeJS程序编译成二进制执行文件,以保护源代码并避免依赖于特定版本的Node。在打包过程中需要注意:1) native addon不被直接打包,需手动放置;2) 使用assets配置包含资源文件;3) 配置文件可单独存放,利用process.cwd()读取;4) TypeScript需先编译为JavaScript再打包;5) target参数需与使用的Node版本匹配。
摘要由CSDN通过智能技术生成

NodeJS学习使用过的童鞋们都知道,可以利用V8来解析运行javascript程序, 我们在写一个server(一般都是使用NodeJS建立http/https server), 如果是云平台,都会直接把js代码上传上去,因为云平台的账户都是自己的,那么客户端的用户是看不见server的code的,那么我们一般的应用server呢?比如你需要把程序安装在客户那边的时候,你的javascript code需要保密吧?同时为了运行javascript代码,我们需要安装node, 而node程序有很多版本,怎么跟其它软件统一版本呢?最好是既不能暴露源代码,有能不要安装其他的程序比如node, 那么pkg就是其中的一个选择,它将所有的js code编译成二进制, 并且直接把node的code打包进去,形成一个exe, 直接双击运行,不需要安装node,那么客户机器上安装的Node版本就跟咱们的server无关了。

在使用pkg进行编译的时候,使用起来简单,但是编译的时候有一些注意的地方:

1. 如果有native addon的话,pkg不支持将addon (.node文件)打包进exe, 所以如果自己写的.node文件或者引用的module里面有.node文件,需要打包完之后将.node文件放到跟exe一个目录里面。

2. 检查资源的时候,pkg在打包的时候,要对目录进行判断,比如require(路径)或者path.join(路径)。但是对于一些特殊引用例如:

  require('./build/' + cmd + '.js')
  path.join(__dirname, 'views/' + viewName)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值