pack-cli v1.4.5
pack-cli
bundle and test client and server side javascript with webpack and mocha without configuration
- compiles JavaScript (React + ES2017), CoffeeScript, Jade, Pug, JSON and yaml
- bundles sass, less and css with optional css-modules, images, fonts, videos
- development with (react) hot reloading
- minified production bundles
- unit tests with mocha, enzyme and ES2017
- browser (ES5 + css prefixes) and nodeJS as build targets
quick start
install
npm install pack-cli --saveadd package scripts in package.json
{
"scripts": {
"start": "pack -w",
"build": "pack",
"test": "pack -t",
"help": "pack -h"
}
}folder structure
- src
- main.js
- ( pack.json )
- package.jsonthe entry point to the application is src/main.js and the root folder src.
these can be changed to client/app.js by passing -s client (--src client) and -m app (--main app) to the command line.
within the project folder imports can be done using relative paths (./filename) or absolute paths (/filename).
absolute paths get resolved relative within the source directory src.
this is useful for config files (/config rather than ../../config) or within stylesheets (/variables.scss rather than ../../variables.scss).
to keep the scripts in the package.json simple, all options can be provided by an additional pack.json file in the source directory.
run pack -h to get a list of all possible options.
the production bundle gets written into dist/js/bundle.js and other subfolders (dist/images, dist/css, dist/fonts, dist/media).
these defaults can be changed to build/app.js by passing -d build (--dist build) and -b app (--bundle app).
to flatten the bundle (no subfolders) use --flatten.
Watch mode
to enable development mode pass -w (--watch). this enables a hot reloading environment in the browser.
when used for nodeJS (-n or --node) the watch mode runs the application and restarts it when outdated or crashed.
Use NIM (chrome add-on, node instance manager) to access dev-tools.
React
to build a react single page app react mode can be enabled by passing -r (--react) to the app.
the entry point to the app (src/main.js) is expected to export a react component as default.
the component gets mounted into a dom element with id render, if no element is found a new div element is created in body and the component gets mounted in there.
when used in watch mode -w the component gets hot reloaded as soon as a file is changed.
react-hot-loader is used to preserve state.
css modules
css modules can be enabled by passing -c (--cssmodules) to the command line arguments.
css modules are used for .css, .less, .scss files.
to prevent a stylesheet from being parsed prepend global to its extension (import './legacy.css'; to import './legacy.global.css';).
global install and help
the package can be installed global by using npm install -g pack-cli.
use pack -h to show all available options.
when pack is installed global --init can be used to scaffold a project into the empty current directory.
All flags can be used (pack --init -rc for react and css-modules) and get saved in the project.
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
9 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago
10 years ago