@mikechau/js-config-gen v0.7.0
js-config-gen
Inspired by @petehunt's rwb.
My personal node module for scaffolding application using JavaScript. Primarily for scaffolding projects using React, Babel, Eslint, Karma and Mocha. Also serves as a way to shared configurations between projects I work on.
Generated static configs are available in dist
, if you prefer to use a config
as a base and do some heavy customizations or want to see what they are.
Usage
npm init # if you haven't already
npm install @mikechau/js-config-gen --save-dev
./node_modules/.bin/js-config-gen -i react-web
Usage:
js-config-gen <args>
Args:
--install, -i: install predefined package list, options: [react-web]
--force, -f: overwrite existing configs, does not override --skip-install or --skip-commands
--eslintrc: create eslintrc
--babelrc: create babelrc
--webpack: create webpack configs
--webpack-dev-server: create webpack dev server config
--karma: create karma configs
--index-html: creates dev & prod index.html
--redux: creates scaffold for redux
--skip-install: override to skip installing of packages
--skip-commands: override to skip adding of commands
Package Groups
- React Web: Standalone setup for a client side SPA for the web
- Redux
- Fetch
- Webpack dev/test/prod configs
- Eslint dev/test/prod configs (based on Airbnb style)
- ES6
- Babel w/ hot transforming, redbox-errors
- PurifyCSS
- Karma / Mocha for browser/unit testing, @mjackson's expect for assertions
Project Commands
Custom commands are added to your package.json
scripts, use npm run
to
list them all.
These are the standard ones available:
npm start
- boots the dev server, start hacking!npm test
- runs the test suitenpm run build
- compiles assets
Extending
While there is code generation involved, most of the generated configs are contained in the dist
folder. You can require a module from dist
and then merge over it to override any particular settings you want.
Alternatively, you could just copy a file and use it as a starting point for your project configurations.
Issues
npm test
triggers:Error: cannot resolve path (or pattern) './tests/**/*.spec.js'
.The solution here is to add a mocha test, it is set to look for tests that end in
*.spec.js
, since no tests are generated it fails because it cannot find any tests.
Todo
Script
Bin command
- Add copy command to copy a file from dist
- Choose specific style loader instead of including less and sass
Misc
- Static HTML Templates
- Redux scaffolding
- Write more tests
- Continuous Integration
Production
- PurifyCSS
- Zopfli compression with webpack #10
- Sprockets compatible manifest with webpack
- Subresource integrity in manifest
- Generated index.html should include integrity
Testing
- Review babel-plugin-rewire for Babel 6 compatibility
- Integration testing with nightwatch, use Gulp to start the server, run nightwatch, then kill the server on completion link
- PhantomJS support
Development
- Dev Server
- CSS Source Maps
- PostCSS / Autoprefixer
- CSS Modules / React styling
- Flow
- Bootswatch
- Native support
- Server support
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago