Skip to content

构建二进制包

通过 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目录查看构建产物