Awesome Open Source
Awesome Open Source

NOTE: This repo is archived.

This repo contains code from the previous version of Building Applications in React and Redux in ES6. For the latest code, see the exercise files on the course page on Pluralsight.

Starter Kit for Building Applications in React and Redux in ES6 on Pluralsight

Get Started

  1. Install Node 6. Need to run multiple versions of Node? Use nvm or nvm-windows
  2. Clone this repository. - git clone or download the zip
  3. Make sure you're in the directory you just created. - cd pluralsight-redux-starter
  4. Install Node Packages. - npm install
  5. Run the app. - npm start -s This will run the automated build process, start up a webserver, and open the application in your default browser. When doing development with this kit, this command will continue watching files all your files. Every time you hit save the code is rebuilt, linting runs, and tests run automatically. Note: The -s flag is optional. It enables silent mode which suppresses unnecessary messages during the build.
  6. Disable safe write in your editor to assure hot reloading works properly.
  7. Install React developer tools and Redux Dev Tools in Chrome.
  8. Having issues? See below.

Having Issues? Try these things first:

  1. Run npm install - If you forget to do this, you'll see this: babel-node: command not found.
  2. Make sure the path doesn't include any spaces, or install the latest version of eslint-watch which adds support for paths containing spaces: npm install [email protected]
  3. Make sure you're running the latest version of Node. Or, use Node 5.12.0 if you're having issues on Windows. Node 6 has issues on some Windows machines.
  4. Make sure files with names that begin with a dot (.babelrc, .editorconfig, .eslintrc) are copied to the project directory root. This is easy to overlook if you copy this repository manually.
  5. Don't run the project from a symbolic link. It will cause issues with file watches.
  6. Use path.resolve on all path references in both the dev and prod webpack.config. See this commit for an example.
  7. Delete any .eslintrc in your user directory and disable any ESLint plugin / custom rules within your editor since these will conflict with the ESLint rules defined in the course.
  8. On Windows? Open your console as an administrator. This will assure the console has the necessary rights to perform installs.
  9. Try using your OS's native command line instead of an editor's. For some people, an editor's command line configuration may cause issues.
  10. Ensure you do not have NODE_ENV=production in your env variables as it will not install the devDependencies. To check run this on the command line: set NODE_ENV. If it comes back as production, you need to clear this env variable.
  11. Make sure you're using the same imports as the course demo. I've seen some people import ES6 code from node_modules via different imports like import Route from "react-router/es6/Route"; and import IndexRoute from "react-router/es6/IndexRoute";. Don't do that. :) Use the exact imports I use in the course.
  12. Reference bundle.js with a leading slash or you'll get an unexpected token error on reload of deep links.
  13. Make sure you have a .babelrc file defined in the root, as provided in this repo. Without it, you'll get a Unexpected token import error.
  14. Nothing above work? Delete your node_modules folder and re-run npm install.

Production Dependencies

Dependency Use
babel-polyfill Polyfill for Babel features that cannot be transpiled
bootstrap CSS Framework
jquery Only used to support toastr
react React library
react-dom React library for DOM rendering
react-redux Redux library for connecting React components to Redux
react-router React library for routing
react-router-redux Keep React Router in sync with Redux application state
redux Library for unidirectional data flows
redux-thunk Async redux library
toastr Display messages to the user

Development Dependencies

Dependency Use
babel-cli Babel Command line interface
babel-core Babel Core for transpiling the new JavaScript to old
babel-loader Adds Babel support to Webpack
babel-plugin-react-display-name Add displayName to React.createClass calls
babel-preset-es2015 Babel preset for ES2015
babel-preset-react Add JSX support to Babel
babel-preset-react-hmre Hot reloading preset for Babel
babel-register Register Babel to transpile our Mocha tests
cheerio Supports querying DOM with jQuery like syntax - Useful in testing and build process for HTML manipulation
colors Adds color support to terminal
compression Add gzip support to Express
cross-env Cross-environment friendly way to handle environment variables
css-loader Add CSS support to Webpack
enzyme Simplified JavaScript Testing utilities for React
eslint Lints JavaScript
eslint-plugin-import Advanced linting of ES6 imports
eslint-plugin-react Adds additional React-related rules to ESLint
eslint-watch Add watch functionality to ESLint
eventsource-polyfill Polyfill to support hot reloading in IE
expect Assertion library for use with Mocha
express Serves development and production builds
extract-text-webpack-plugin Extracts CSS into separate file for production build
file-loader Adds file loading support to Webpack
jsdom In-memory DOM for testing
mocha JavaScript testing library
nock Mock HTTP requests for testing
npm-run-all Display results of multiple commands on single command line
open Open app in default browser
react-addons-test-utils Adds React TestUtils
redux-immutable-state-invariant Warn when Redux state is mutated
redux-mock-store Mock Redux store for testing
rimraf Delete files
style-loader Add Style support to Webpack
url-loader Add url loading support to Webpack
webpack Bundler with plugin system and integrated development server
webpack-dev-middleware Adds middleware support to webpack
webpack-hot-middleware Adds hot reloading to webpack
Alternatives To Pluralsight Redux Starter
Select To Compare

Alternative Project Comparisons
Related Awesome Lists
Top Programming Languages
Top Projects

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
Javascript (1,058,747
Reactjs (162,277
Redux (27,907
Webpack (23,625
Eslint (8,285
Babel (8,003
Preset (3,764
Polyfill (2,686