@hz-9/pkg-build
@hz-9/pkg-build
一个用于运行 pkg 打包 Node.js 服务或工具的工具。
简介
为什么创建 @hz-9/pkg-build 而不直接使用 pkg?
@hz-9/pkg-build 仍然利用 pkg 进行打包操作,但没有进行优化。@hz-9/pkg-build 提供以下功能:
- 支持
buildName和buildVersion参数。默认情况下,它们将从 package.json 文件中读取。 - 输出的构建产物将以
${name}-${version}-${platform}-${arch}的格式进行重命名。
安装
npm install --global @hz-9/pkg-build
使用方法
获取帮助:
pkg-build --help
最简执行:
pkg-build
使用配置文件:
pkg-build --config ./.hz-9.conf.json
请参阅 配置文件说明 以了解如何编写 .hz-9.conf.json。
参数
-r, --root
执行路径,默认为 process.cwd()。该参数会影响到 package.json 文件的读取和其他相对路径的解析。
-c, --config
配置文件的路径。如果省略,将不会读取配置文件。
命令行参数的优先级高于配置文件参数。
--build-name
构建输出文件名的名称部分。如果省略,将从 package.json 中读取 name 参数。如果找不到或解析错误,将默认为 'unknown'。
--build-version
构建输出文件名的版本部分。如果省略,将从 package.json 中读取 version 参数。如果找不到或解析错误,将默认为 '0.0.0'。
--targets
执行 pkg 时的 targets 参数。详见 详情。
如果导出多个平台,使用逗号分隔它们(例如:linux-64,win-x64)。如果省略,将使用 linux-x64。
--input-path
执行 pkg 时的入口文件路径。如果省略,将使用 ./src/index.js。
--output-path
执行 pkg 时的输出文件夹路径。如果省略,将使用 ./build。
--config、--input-path 和 --output-path 参数都可以接受相对路径或绝对路径。 相对路径将使用 root 参数作为基路径进行解析。
配置文件
配置文件支持 jsonc 格式。所有参数都以 pkg 为前缀。
例如:读取 buildName 参数,将从配置文件中的 pkg.buildName 的值读取。
以下是配置文件的模板:
{
"pkg": {
"inputPath": "dist/main.js",
"buildName": "service",
"version": "0.0.0",
"targets": [
"linux-x64"
]
}
}
pkg.buildName
等同于 --build-name。优先级低于命令行参数。
pkg.buildVersion
等同于 --build-version。优先级低于命令行参数。
pkg.targets
等同于 --targets。优先级低于命令行参数。
pkg.inputPath
等同于 --input-path。如果提供了相对路径,将使用配置文件所在路径作为基路径进行解析。
pkg.outputPath
等同于 --output-path。如果提供了相对路径,将使用配置文件所在路径作为基路径进行解析。
pkg.scripts
由于 scripts 是项目中的固定信息,我们不打算在命令行中支持 scripts 参数。
pkg.assets
由于 assets 是项目中的固定信息,我们不打算在命令行中支持 assets 参数。