A Webpack2 boilerplate, partly based on this Egghead.io course; Using Webpack for Production JavaScript Applications
- Npm as a task/build runner
- Webpack2 with tree-shaking
- Node 6
- ES2015
- Linting with eslint and stylelint
- Unit tests with Mocha, Chai and JsDom
- Code coverage with Istanbul
- SASS boilerplate
- Install Node6 (via nvm)
- Clone this repository:
git clone https://github.com/leifoolsen/webpack2-boilerplate.git(or download zip) - CD to project directory:
cd webpack2-boilerplate - Remove existing git:
rm -rf .git - Install dependencies:
npm install - Run:
npm start - Open a browser at
http://localhost:8084 - Press
Ctrl+Cto stop the devserver - Init your git:
git init - Modify
package.json, e.g.name, author, description - Add your own 3'rd party dependencies to
package.json - Add those 3'rd party dependencies to
vendorsection inwebpack.config - Happy hacking :)
Note: Remember to add your own repo to package.json
"repository": {
"type": "git",
"url": "https://github.com/<your-git>/<your-project>.git"
},
start: runs the webpack-dev-sever, with eslint and stylelint, serving files at http://localhost:8084test: runs Mocha teststest:watch: runs Mocha tests in watch modetest:pattern: will run tests and suites with names matching the given pattern, e.g.pattern=Basic npm run test:patterntest:coverage: runs Istanbul code coverage (opencoverage/lcov-report/index.htmlto view coverage report)lint: lint according to rules in.eslintrcand.stylelintrcvalidate: validates the integrety of the webpack config file and runs code coverageanalyze: runs webpack-bundle-size-analyzer to analyze the output bundle sizesclean: removes the dist directorybuild:dev: bundles the app to the dist dir using development settingsbuild:prod: bundles the app to the dist dir using production settings