xportify
v1.0.7
Published
A CLI tool that automatically generates and manages the exports field in package.json for ESM packages
Maintainers
Readme
Xportify
A TypeScript CLI tool that automatically generates and manages the exports field in your package.json file for ESM packages.
Features
- Scans your distribution directory for JavaScript and TypeScript declaration files
- Automatically generates a proper
exportsobject with import and types paths - Validates project structure and required files
- Provides colorized console output for better readability
- Supports writing directly to your package.json file
Installation
# Using npm
npm install -g xportify
# Using yarn
yarn global add xportify
# Using pnpm
pnpm add -g xportifyOr install it locally in your project:
# Using npm
npm install --save-dev xportify
# Using yarn
yarn add --dev xportify
# Using pnpm
pnpm add -D xportifyUsage
xportify --project <project-path> [options]Required Arguments
-p, --project <path>: Path to your project directory (required)
Optional Arguments
-d, --dist <directory>: Path to your distribution directory (default: "./dist")-w, --write: Write the generated exports to package.json (default: false)-h, --help: Display help information-V, --version: Display version information
Examples
Generate exports object without modifying package.json
xportify --project .This will scan the default "./dist" directory and display the generated exports object in the console.
Generate exports and write to package.json
xportify --project . --writeThis will generate the exports object and update your package.json file.
Specify a custom distribution directory
xportify --project . --dist ./build --writeThis will scan the "./build" directory and update your package.json file.
How It Works
- Xportify scans your distribution directory for JavaScript (.js, .mjs) and TypeScript declaration (.d.ts) files
- It generates an exports object with proper import and types paths for each file
- If the
--writeflag is provided, it updates your package.json file with the generated exports
Example Output
{
"exports": {
"./utils": {
"import": "./dist/utils.js",
"types": "./dist/utils.d.ts"
},
"./helpers": {
"import": "./dist/helpers.js",
"types": "./dist/helpers.d.ts"
}
}
}Development
# Install dependencies
pnpm install
# Run in development mode
pnpm dev
# Build the project
pnpm build
# Run linting
pnpm check
# Fix linting issues
pnpm fixRequirements
- Node.js 16 or higher
- Package using ESM modules (type: "module" in package.json)
License
MIT
