verb formal
make something abstract more concrete or real
# general maintenance
brew update; brew upgrade # update nodejs and npm
npm update -g # update global node modules
npm i -g npm-check-updates # use this to keep npm modules up-to-date
ncu # check for dependency updates
# dev tasks
npm i # install project dependencies
npm start # run local development server at http://localhost:8080
# testing
npm test # run tests
npm run test:watch # run tests in watch mode
npm run test:verbose # extra output
npm run test:werbose # watch mode, extra output
npm run lint # run linter
npm run cover # run coverage report
Reify is an opinionated boilerplate for non-universal (client-only) React apps, configured with best practices and patterns and a curated selection of libraries from the React ecosystem.
Reify's goals are focused primarily on developer experience and code quality. It aims to:
- make it quick and easy to learn React+Redux and start building
- encourage best practices and design patterns
- help you write well-tested, maintainable React apps
- allow you to build the client in isolation
- make it easy to go from learning and prototyping to building production-quality apps
It's set up with TDD in mind and is configured with hot module reloading enabled for a painless developer experience. It also includes a simple demo app that you can examine and learn from.
For an explanation of the patterns used, see PATTERNS.md. To learn how the demo app works, see DEMO.md. To learn how to contribute, see CONTRIBUTING.md.
- Babel lets us use future JS language features now
- React for modular view components
- react-router for mapping UI state to a URI
- Redux, Facebook's futuristic Flux implementation, to manage app state
- react-router-redux syncs routes with our state tree
- redux-form to manage form state in Redux
- redux-immutable to make redux work with Immutable.js state
- redux-saga keeps all side effects in a single place
- redux-storage to store application state in localStorage
- immutable gives us immutable data structures
- axios promises-based HTTP client
- react-helmet to manage title and meta tag info
- lru-memoize to speed up form validation
- multireducer to combine single reducers into one key-based reducer
- redux-storage lets us save redux state tree to localStorage
- webpack bundles our application
- webpack-dev-server an easy-to-use local dev server with hot module reloading
- HtmlWebpackPlugin simplifies creation of our app bundle's HTML files
- style-loader, css-loader, stylus-loader, sass-loader and less-loader to allow import of stylesheets in plain css, stylus, sass and less
- eslint to maintain a consistent code style
- AVA futuristic test runner for javascript
- sinon standalone spies, stubs and mocks
- nyc coverage reporting for apps that spawn subprocesses
- enzyme React component testing
- Redux Dev Tools for next generation developer experience
- Redux Test Recorder automagically generate tests for your reducers based on the actions in your app
- raven-js allows us to log client app errors to Sentry
- nock HTTP mocking library
- jsdom mock the DOM
- webpack-dashboard prettify webpack output