- node
^4.2.0
- npm
^3.0.0
After confirming that your development environment meets the specified requirements, you can follow these steps to get the project up and running:
$ git clone [email protected]:SumatoSoft/react-module-start-kit.git MODULE_NAME
$ cd MODULE_NAME
$ npm install # Install project dependencies
$ npm start # Compile and launch
.
├── bin # Build/Start scripts
├── build # All build-related configuration
│ └── webpack # Environment-specific configuration files for webpack
├── config # Project configuration settings
├── server # Koa application (uses webpack middleware)
│ └── main.js # Server application entry point
├── src # Application source code
│ ├── main.js # Application bootstrap and rendering
│ ├── components # Reusable Presentational Components
│ | ├── modules # Moudles
│ ├── containers # Reusable Container Components
│ ├── layouts # Components that dictate major page structure
│ ├── styles # Application-wide styles (generally settings)
│ ├── store # Stores
│ └── views # Main views definitions and async split points
│ ├── index.js # Bootstrap main application routes with store
│ └── Home # Fractal route
│ ├── index.js # Route definitions and async split points
│ ├── assets # Assets required to render components
│ ├── components # Presentational React Components
│ ├── container # Connect components to actions and store
└── tests # Unit tests
To add a unit test, simply create a .spec.js
file anywhere in ~/tests
. Karma will pick up on these files automatically, and Mocha and Chai will be available within your test without the need to import them. If you are using redux-cli
, test files should automatically be generated when you create a component or redux module.
Coverage reports will be compiled to ~/coverage
by default. If you wish to change what reporters are used and where reports are compiled, you can do so by modifying coverage_reporters
in ~/config/index.js
.
NODE_ENV=production npm run compile
or use Gem rake task build
or release
Both .scss
and .css
file extensions are supported out of the box and are configured to use CSS Modules. After being imported, styles will be processed with PostCSS for minification and autoprefixing, and will be extracted to a .css
file during production builds.
This starter kit comes packaged with an Koa server. It's important to note that the sole purpose of this server is to provide webpack-dev-middleware
and webpack-hot-middleware
for hot module replacement. Using a custom Koa app in place of webpack-dev-server makes it easier to extend the starter kit to include functionality such as API's, universal rendering, and more -- all without bloating the base boilerplate.