1.0.0 • Published 8 years ago

pluralsight-redux-starter v1.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
8 years ago

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 https://github.com/coryhouse/pluralsight-redux-starter.git 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 eslint-watch@2.1.13
  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

DependencyUse
babel-polyfillPolyfill for Babel features that cannot be transpiled
bootstrapCSS Framework
jqueryOnly used to support toastr
reactReact library
react-domReact library for DOM rendering
react-reduxRedux library for connecting React components to Redux
react-routerReact library for routing
react-router-reduxKeep React Router in sync with Redux application state
reduxLibrary for unidirectional data flows
redux-thunkAsync redux library
toastrDisplay messages to the user

Development Dependencies

DependencyUse
babel-cliBabel Command line interface
babel-coreBabel Core for transpiling the new JavaScript to old
babel-loaderAdds Babel support to Webpack
babel-plugin-react-display-nameAdd displayName to React.createClass calls
babel-preset-es2015Babel preset for ES2015
babel-preset-reactAdd JSX support to Babel
babel-preset-react-hmreHot reloading preset for Babel
babel-registerRegister Babel to transpile our Mocha tests
cheerioSupports querying DOM with jQuery like syntax - Useful in testing and build process for HTML manipulation
colorsAdds color support to terminal
compressionAdd gzip support to Express
cross-envCross-environment friendly way to handle environment variables
css-loaderAdd CSS support to Webpack
enzymeSimplified JavaScript Testing utilities for React
eslintLints JavaScript
eslint-plugin-importAdvanced linting of ES6 imports
eslint-plugin-reactAdds additional React-related rules to ESLint
eslint-watchAdd watch functionality to ESLint
eventsource-polyfillPolyfill to support hot reloading in IE
expectAssertion library for use with Mocha
expressServes development and production builds
extract-text-webpack-pluginExtracts CSS into separate file for production build
file-loaderAdds file loading support to Webpack
jsdomIn-memory DOM for testing
mochaJavaScript testing library
nockMock HTTP requests for testing
npm-run-allDisplay results of multiple commands on single command line
openOpen app in default browser
react-addons-test-utilsAdds React TestUtils
redux-immutable-state-invariantWarn when Redux state is mutated
redux-mock-storeMock Redux store for testing
rimrafDelete files
style-loaderAdd Style support to Webpack
url-loaderAdd url loading support to Webpack
webpackBundler with plugin system and integrated development server
webpack-dev-middlewareAdds middleware support to webpack
webpack-hot-middlewareAdds hot reloading to webpack