Full-fledged CLI tool to generate and package library Node modules compliant with Browser and NodeJS. Packer CLI support all modern style, unit test and script transpiler tools.
Packer CLI is using itself to compile self source.
:book: Table of Contents
:bulb: Features
:ballot_box_with_check: Managed build configuration
:ballot_box_with_check: Encapsulated build process
:ballot_box_with_check: Both NPM and Yarn support
:ballot_box_with_check: Travis CI support
:ballot_box_with_check: Typescript and Babel based code transpilation
:ballot_box_with_check: TS Lint based Typescript code analysis
:ballot_box_with_check: ES Lint based Javascript code analysis
:ballot_box_with_check: Style lint based style sheet code analysis
:ballot_box_with_check: Precompiled handlebars templating
:ballot_box_with_check: Support SCSS, SASS, LESS and Stylus and vanilla CSS
:ballot_box_with_check: Post CSS based image inline and auto prefixing
:ballot_box_with_check: Karma unit test runner
:ballot_box_with_check: Jasmine, Mocha and Jest unit test frameworks
:ballot_box_with_check: Rollup and Gulp based build process
:ballot_box_with_check: ES5, ESNext, UMD, AMD, SYSTEM, IIFE and CommonJS bundle build output
:ballot_box_with_check: Emmit type definitions for typescript projects
:ballot_box_with_check: Ready to publish as Node module
:ballot_box_with_check: Inline and bundle styles
:ballot_box_with_check: Theme packaging
:ballot_box_with_check: Source import path replace
:ballot_box_with_check: Exclude external peer dependencies in bundle
:ballot_box_with_check: Bundle peer dependencies
:ballot_box_with_check: Ignore imports
:ballot_box_with_check: Copy static assets to build dir
:ballot_box_with_check: Library summary banner generation
:ballot_box_with_check: Library dependency license extraction
:ballot_box_with_check: Node CLI project support
:ballot_box_with_check: JSX and TSX support
:ballot_box_with_check: Custom rollup plugin integration support
:ballot_box_with_check: Build caching support to improve performance
:sparkles: Usage
Before the Packer-CLI installation there are few pre-requisites to be complete. If your device meet the below requisites then you can proceed to the next section.
- Install Node.js on your device.
- Run
npm install -g npx
to install npx globally. (optional)
:mag_right: Basic Usage
You can simply run the following command in a preferred directory to generate a new project using Packer CLI,
npx packer-cli generate my-library
or
npm install packer-cli -g && packer generate my-library
Once project is generated and dependencies are installed, you can use the following CLI commands:
npm run watch
npm run build
npm run lint
npm run lint:style
npm run lint:script
npm run test
npm run test:coverage
npm run test:ci
npm run test:coverage:ci
npm version major|minor|patch
npm run release
Generated project structure can be viewed here
:gear: Standalone Usage
You can also use packer CLI standalone on any packer compliant project to customize the NPM scripts generated.
Usage: packer [--version | -v] | [--help | -h] | <command>[<args>]
Arguments supported with all commands
+ Logging flags
[--trace] set console log level to trace
[--info] set console log level to information
[--warn] set console log level to warning
[--error] set console log level to error
[--silent] set console log level to silent
+ Other Flags
[--config | -c] dynamic packer config path
Generate a new library project via packer
generate | g <project name>
[--skipInstall | -sk] skip dependency install after project
These are packer commands can be used on generated project
build | b trigger build
watch | w trigger serve on watch mode
test | t execute project test suite
[--watch | -W] execute test on watch mode
[--coverage | -C] execute test suite with coverage
clean | c clean project build artifacts and temporary files generated
lint | l execute lint for project source
[--style | -sc] execute only style lint
[--script | -sr] execute only script lint
:hammer_and_pick: Build Configuration
Build configuration can be updated after project generation via .packerrc.js
. Refer packer configuratin options for more details.
:seedling: Contributions
Feel free to open an issue or create a PR.
:copyright: License
Packer-CLI was license under MIT. Please refer LICENSE for more information.