PackConfig
PackConfig 是软件包打包配置接口,用于将服务的构建产物打包成标准的 npm .tgz 格式软件包。
- 标准化:使用 npm 标准的 .tgz 打包格式
- 完整性:包含模块的源代码、类型声明和配置文件等所有必要文件
- 兼容性:与 npm 生态系统完全兼容,支持标准的包管理工作流
类型定义
PackConfig
enable
是否启用打包功能。启用后会将构建产物打包成标准的 npm .tgz 格式软件包。
- 类型:
boolean - 默认值:
false
outputs
指定输出的软件包文件路径。支持以下配置方式:
string: 单个输出路径,如 'dist/versions/my-app.tgz'string[]: 多个输出路径,用于同时生成多个版本boolean: true 时使用默认路径 'dist/client/versions/latest.tgz'
packageJson
自定义 package.json 内容的回调函数。在打包前调用,用于自定义 package.json 的内容。
- 参数:
esmx: Esmx- Esmx 实例pkg: Record<string, any>- 原始的 package.json 内容
- 返回值:
Promise<Record<string, any>>- 修改后的 package.json 内容
常见用途:
- 修改包名和版本号
- 添加或更新依赖项
- 添加自定义字段
- 配置发布相关信息
示例:
onBefore
打包前的准备工作回调函数。
- 参数:
esmx: Esmx- Esmx 实例pkg: Record<string, any>- package.json 内容
- 返回值:
Promise<void>
常见用途:
- 添加额外的文件(README、LICENSE 等)
- 执行测试或构建验证
- 生成文档或元数据
- 清理临时文件
示例:
onAfter
打包完成后的处理回调函数。在 .tgz 文件生成后调用,用于处理打包产物。
- 参数:
esmx: Esmx- Esmx 实例pkg: Record<string, any>- package.json 内容file: Buffer- 打包后的文件内容
- 返回值:
Promise<void>
常见用途:
- 发布到 npm 仓库(公共或私有)
- 上传到静态资源服务器
- 执行版本管理
- 触发 CI/CD 流程
示例:
使用示例
entry.node.ts