欢迎光临散文网 会员登陆 & 注册

nodejs pkg打包exe

2023-02-13 18:04 作者:zsnote  | 我要投稿

 pkg -t win xxx.js
 前提要下载对应的node二进制到pkg的cache目录,本来会自己下载的但是墙了。
C:\Users\Administrator\.pkg-cache\v3.4\fetched-v18.5.0-win-x64
下载的是node-v18.5.0-win-x64,改名,版本和当前node基本一致即可。


++++++++++++++++++++++

虽然可以通过编辑package.json文件实现更多选项,但是大多数nodejs程序只有一个入口,因此推荐使用命令行直接编译打包。

命令行

进入到项目根目录,以入口脚本为app.js为例:

pkg -o app -t node14-linux-x64 app.js

-o 参数 输出的可执行程序名称
-t 目标平台类型,这里是输出到linux平台

首次使用会出现下载基础包时间过长的问题,如:

    > Targets not specified. Assuming:
      node14-linux-x64, node14-macos-x64, node14-win-x64
    > Fetching base Node.js binaries to PKG_CACHE_PATH
      fetched-v14.4.0-linux-x64    [                    ] 0%

这种情况下可以手动下载,进入页面手动下载对应的基础包:https://github.com/vercel/pkg-fetch/releases
然后拷贝到全局目录PKG_CACHE_PATH 内,PKG_CACHE_PATH 可以通过设置系统变量来设置:

export PKG_CACHE_PATH=/usr/local/node/pkg_cache_path

运行完毕后把这行命令建议放到 /etc/profile文件尾部实现长久生效。
运行过 pkg命令后,PKG_CACHE_PATH 目录下有个以版本号命名的目录,将刚才下载的文件重命名为所需文件拷贝到这个目录即可。例如上面命令提示的文件名是 fetched-v14.4.0-linux-x64 ,则拷贝时重命名为该名称。
再次运行pkg命令就不会下载了,打包速度很快!



nodejs pkg打包exe的评论 (共 条)

分享到微博请遵守国家法律