1.0.0 • Published 4 years ago

@ecrowjs/npmpack v1.0.0

Weekly downloads
1
License
MIT
Repository
github
Last release
4 years ago

npm package build

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 --dev

It can also be installed globally.

# Global install with NPM
npm install -g @ecrowjs/npmpack
# Global install with Yarn
yarn global add @ecrowjs/npmpack

Usage

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 pkg

The 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.json

Flag Options

FlagDescriptionTypeDefault
--helpShow helpboolean
--configPath to JSON config filefile
--copy, -c, -fIndividual files or directories to includestring[][]
--excludeGlob pattern(s) of files to excludestring[][]
--includeGlob pattern(s) of files to excludestring[][]
--outputPath to output matched filesstringpkg
--packagejsonJSON string to override package.json propertiesstring"{}"
--rootThe root of your project where package.json residesstring.

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.json

npmpack.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>"
    }
})