jeetsrs / eslint-config-fullstack

A complete ESLint config file to help students avoid errors and learn best practices

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

npm version Codeship Greenkeeper.io is keeping this repo's dependencies up to date Built at Fullstack Academy

eslint-config-fullstack

Installation

Global

Global installation is recommended for Fullstack Education Group students. To install or upgrade the config along with its peer dependencies:

npm install -g eslint eslint-config-fullstack eslint-plugin-react

In your global ~/.eslintrc.json file:

{
  "extends": "fullstack"
}

Note that the eslint-config- portion of the module name is assumed by ESLint.

Local

A specific project can extend this definition by including eslint eslint-config-fullstack eslint-plugin-react as saved dev-dependencies, and defining a local .eslintrc.json. Project-level eslintrc files are recommended to be set as root, which prevents users' global configs from producing inconsistent results:

{
	"extends": "fullstack",
	"root": true
}

For Babel-Transpiled Projects

This config's peer dependencies (eslint, eslint-plugin-react) enable linting relatively modern files including JSX components. If you find that the linter fails to understand some early-stage ES features, you can enable parsing using Babel instead of ESLint's default parser. Install babel-eslint and set the parser option of your config:

npm install babel-eslint --save-dev
{
	"parser": "babel-eslint",
	"extends": "fullstack",
	"root": true
}

Extending

Any rules added to your global or local .eslintrc.json files will override the rules defined by this package. For example:

{
  "extends": "fullstack",
  "rules": {
    "semi": [1, "always"]
  }
}

This turns on enforcing the use of semicolons, a rule which is silenced by default in the current version of the eslint-config-fullstack package.

Background

The ESLint linting system is a popular one for its support of ES6 syntax, pluggable rules, automatic rule names in warning messages, and shareable / extendable config files.

This npm package provides a thorough starting config file. It was developed at Fullstack Academy of Code / Grace Hopper Academy to use in an educational setting, helping students to avoid definite errors but also pick up best practices.

Because it defaults to supporting multiple environments (e.g. Node, browsers, Jasmine, Mocha, etc.) it is probably not suitable for general production, where one might want a finer-grained and more restrictive config. However it is easy to override and extend this base config with custom rules, as explained above and in the ESLint docs.

License

MIT

About

A complete ESLint config file to help students avoid errors and learn best practices

License:MIT License


Languages

Language:JavaScript 100.0%