Skip to content

Repository files navigation

JavaScript Development Environment

This is a generic JavaScript development environment that I build from scratch in "Building a JavaScript Development Environment" on Pluralsight. This isn't tied to any specific JS framework.

Get Started

  1. Install Node 6 or newer. Need to run multiple versions of Node? Use nvm or nvm-windows
  2. Clone this repository. - git clone https://github.com/coryhouse/javascript-development-environment.git or download the zip
  3. Make sure you're in the directory you just created. - cd javascript-development-environment
  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. 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. Try running the latest version of Node.
  3. 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.
  4. Don't run the project from a symbolic link. It will cause issues with file watches.
  5. Having linting issues? Delete any .eslintrc that you're storing in your user directory. Also, disable any ESLint plugin / custom rules that you've enabled within your editor. These will conflict with the ESLint rules defined in the course.
  6. Seeing Error: listen EADDRINUSE :::3000? That means port 3000 is already in use on your machine. You probably have another instance of this project running on your machine in a different window. So find that window and kill the other instance using Ctrl+C.
  7. Nothing above work? Delete your node_modules folder and re-run npm install.

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-preset-latestBabel preset for running all the latest standardized JavaScript features
babel-registerRegister Babel to transpile our Mocha tests
chaiAssertion library
chalkColored command line output
cheerioSupports querying DOM with jQuery like syntax - Useful in testing and build process for HTML manipulation
compressiongzip http output
cross-envCross-environment friendly way to handle environment variables
css-loaderAdd CSS support to Webpack
eslintLints JavaScript
eslint-plugin-importAdvanced linting of ES6 imports
eslint-watchAdd watch functionality to ESLint
expressServes development and production builds
extract-text-webpack-pluginExtracts CSS into separate file for production build
html-webpack-pluginGenerate HTML file programatically via Webpack
jsdomIn-memory DOM for testing
json-schema-fakerDeclare a JSON schema for generating fake data
json-serverServe a JSON API locally
localtunnelCreate a tunnel to your local machine
mochaJavaScript testing library
nockMock HTTP requests via Node
npm-run-allDisplay results of multiple commands on single command line
numeralLibrary for working with numbers
openOpen app in default browser
rimrafDelete files
style-loaderAdd Style 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
webpack-md5-hashUsed to hash files generated by Webpack using MD5 so that their names change when the content changes

About

JavaScript development environment discussed in "Building a JavaScript Development Environment" on Pluralsight

Resources

Stars

294 stars

Watchers

29 watching

Forks

Releases

Packages

Used by

Contributors

Languages