PackConfig
PackConfig is the software package packaging configuration interface, used to package service build artifacts into standard npm .tgz format packages.
- Standardization: Uses npm standard .tgz packaging format
- Completeness: Contains all necessary files including module source code, type declarations, and configuration files
- Compatibility: Fully compatible with npm ecosystem, supports standard package management workflows
Type Definition
PackConfig
enable
Enables or disables packaging functionality. When enabled, build artifacts will be packaged into standard npm .tgz format packages.
- Type:
boolean - Default:
false
outputs
Specifies the output package file path. Supports the following configuration methods:
string: Single output path, e.g., 'dist/versions/my-app.tgz'string[]: Multiple output paths, for generating multiple versions simultaneouslyboolean: true uses the default path 'dist/client/versions/latest.tgz'
packageJson
Callback function to customize package.json content. Called before packaging, used to customize the package.json content.
- Parameters:
esmx: Esmx- Esmx instancepkg: Record<string, any>- Original package.json content
- Returns:
Promise<Record<string, any>>- Modified package.json content
Common use cases:
- Modify package name and version
- Add or update dependencies
- Add custom fields
- Configure publishing-related information
Example:
onBefore
Pre-packaging preparation callback function.
- Parameters:
esmx: Esmx- Esmx instancepkg: Record<string, any>- package.json content
- Returns:
Promise<void>
Common use cases:
- Add additional files (README, LICENSE, etc.)
- Execute tests or build validation
- Generate documentation or metadata
- Clean temporary files
Example:
onAfter
Post-packaging processing callback function. Called after .tgz file generation, used to process packaging artifacts.
- Parameters:
esmx: Esmx- Esmx instancepkg: Record<string, any>- package.json contentfile: Buffer- Packaged file content
- Returns:
Promise<void>
Common use cases:
- Publish to npm registry (public or private)
- Upload to static resource server
- Execute version management
- Trigger CI/CD processes
Example:
Usage Examples
entry.node.ts