构建二进制包
通过 vercel/pkg 打包nodejs为可执行的linux二进制/windows.exe文件
安装依赖:
yarn add pkg
配置
js
/* package.json */
{
"bin": "./bin/www", // 可执行文件入口
"pkg": {
"outputPath": "dist", // 输出目录
"scripts": "./*", // 静态资源
"assets": "./*" // 静态资源
},
"scripts": {
"pkgwin": "pkg . -t node16-win-x64", // 构建exe
// 构建可执行linux二进制文件
"pkglinux:x86": "pkg . -t node16-linux-x64", // 基于x86架构
"pkglinux:arm": "pkg . -t node16-linux-arm64" // 基于arm架构
},
}
/* /bin/www */
#!/usr/bin/env node // 使用node来启动程序
require('../app/main.js') // nodejs启动入口
构建
WARNING
测试在windows机器上可以构建win.exe和linux x86文件. arm可执行文件需在arm机器上构建
执行:
yarn pkglinux:x86
- 第一次构建会自动开始下载对应平台的Nodejs包(注意包名),从github拉取速度较慢.
- 可开启Proxy并在pkg-fetch找到对应版本自行下载后存放在
~/.pkg-cache
目录下
WARNING
linux环境下载的Nodejs包需注意可能没有执行权限文件(
chmod -x 包名
)注意下载的Nodejs包名是否跟自动下载时的包名相同,否则需更改
- 构建完成后在/dist目录查看构建产物