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.
git clone https://github.com/coryhouse/javascript-development-environment.git
or download the zipcd javascript-development-environment
npm install
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.npm install
- If you forget to do this, you'll see this: babel-node: command not found
.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.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-preset-latest | Babel preset for running all the latest standardized JavaScript features |
babel-register | Register Babel to transpile our Mocha tests |
chai | Assertion library |
chalk | Colored command line output |
cheerio | Supports querying DOM with jQuery like syntax - Useful in testing and build process for HTML manipulation |
compression | gzip http output |
cross-env | Cross-environment friendly way to handle environment variables |
css-loader | Add CSS support to Webpack |
eslint | Lints JavaScript |
eslint-plugin-import | Advanced linting of ES6 imports |
eslint-watch | Add watch functionality to ESLint |
express | Serves development and production builds |
extract-text-webpack-plugin | Extracts CSS into separate file for production build |
html-webpack-plugin | Generate HTML file programatically via Webpack |
jsdom | In-memory DOM for testing |
json-schema-faker | Declare a JSON schema for generating fake data |
json-server | Serve a JSON API locally |
localtunnel | Create a tunnel to your local machine |
mocha | JavaScript testing library |
nock | Mock HTTP requests via Node |
npm-run-all | Display results of multiple commands on single command line |
numeral | Library for working with numbers |
open | Open app in default browser |
rimraf | Delete files |
style-loader | Add Style 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 |
webpack-md5-hash | Used to hash files generated by Webpack using MD5 so that their names change when the content changes |