跳至主要內容

@hz-9/pkg-build

大约 3 分钟

@hz-9/pkg-build

一个用于运行 pkgopen in new window 打包 Node.js 服务或工具的工具。

NPM 版本 NPM 许可证 NPM 下载量 类型
Node 版本 最后提交

简介

为什么创建 @hz-9/pkg-build 而不直接使用 pkg

@hz-9/pkg-build 仍然利用 pkg 进行打包操作,但没有进行优化。@hz-9/pkg-build 提供以下功能:

  1. 支持 buildNamebuildVersion 参数。默认情况下,它们将从 package.json 文件中读取。
  2. 输出的构建产物将以 ${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 参数。详见 详情open in new window

如果导出多个平台,使用逗号分隔它们(例如: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 参数。

scripts 详情open in new window

pkg.assets

由于 assets 是项目中的固定信息,我们不打算在命令行中支持 assets 参数。

assets 详情open in new window