@ecrowjs/npmpack v1.0.0
NPM Pack is a tool to help organize a nodejs project by packing the deliverable files into a subfolder with it's own package.json.
Installation
NPM Pack can be installed as an npm package itself.
# Install with NPM
npm install @ecrowjs/npmpack --save-dev
# Install with Yarn
yarn add @ecrowjs/npmpack --devIt can also be installed globally.
# Global install with NPM
npm install -g @ecrowjs/npmpack
# Global install with Yarn
yarn global add @ecrowjs/npmpackUsage
NPM Pack can be interfaced on the command line or through ES2015 imports.
CLI Usage
$ npmpack [...flags]Example: Select all files under the lib, copy the dist directory, and output them under the pkg folder.
$ npmpack --copy lib/* dist --output pkgThe pkg folder will include all files from lib, the dist folder itself, and your core package files: LICENSE, README, CHANGELOG, and package.json.
|__dist
|__|__<...>
|___lib
|___|___<...>
|___pkg
|__|__dist
|__|__|__<dist files...>
|__|__<lib files...>
|__|__CHANGLOG
|__|__LICENSE
|__|__README.md
|__|__package.json
|__CHANGLOG
|__LICENSE
|__README.md
|__package.jsonFlag Options
| Flag | Description | Type | Default |
|---|---|---|---|
| --help | Show help | boolean | |
| --config | Path to JSON config file | file | |
| --copy, -c, -f | Individual files or directories to include | string[] | [] |
| --exclude | Glob pattern(s) of files to exclude | string[] | [] |
| --include | Glob pattern(s) of files to exclude | string[] | [] |
| --output | Path to output matched files | string | pkg |
| --packagejson | JSON string to override package.json properties | string | "{}" |
| --root | The root of your project where package.json resides | string | . |
Configuration File
When using the --config option, you can pass the path to a json file that contains the options you want to pass in.
For example:
$ npmpack --config npmpack.jsonnpmpack.json
{
"root": ".",
"copy": ["dist"],
"include": ["lib/**/*.ts"],
"exclude": ["lib/**/*.test.ts"],
"packagejson": {
"name": "Changed Package Name",
"version": "<some_other_version>"
}
}Module Usage
NPM Pack can also be included as a module for one of your custom build script.
// CommonJS
const NPMPack = require('@ecrowjs/npmpack');
// ES6
import * as NPMPack from '@ecrowjs/npmpack');
// Execute NPMPack with some optional configuration.
NPMPack.execute({
root: ".",
copy: ["dist"],
include: ["lib/**/*.ts"],
exclude: ["lib/**/*.test.ts"],
packagejson: {
"name": "Changed Package Name",
"version": "<some_other_version>"
}
})5 years ago