Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/keithamus/eslint-config-strict
ESLint sharable config for strict linting
https://github.com/keithamus/eslint-config-strict
best-practices code-style eslint eslint-config eslint-rules javascript linter-config shareable-configs
Last synced: 8 days ago
JSON representation
ESLint sharable config for strict linting
- Host: GitHub
- URL: https://github.com/keithamus/eslint-config-strict
- Owner: keithamus
- Created: 2015-05-22T13:12:33.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2020-05-24T20:05:48.000Z (over 4 years ago)
- Last Synced: 2025-01-03T03:42:07.805Z (18 days ago)
- Topics: best-practices, code-style, eslint, eslint-config, eslint-rules, javascript, linter-config, shareable-configs
- Language: JavaScript
- Homepage:
- Size: 247 KB
- Stars: 26
- Watchers: 3
- Forks: 9
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# eslint-config-strict
ESLint sharable config for strict linting.
## Rules
Every rule is documented, justified, and has examples within the [rules](./rules) folder. If you feel like a rule is wrong, take a read of this file, or refer others to it!
## Installation
Install this config package and ESLint:
```bash
$ npm install --save-dev eslint-config-strict
```If you're using npm < v3 you'll also need to install all of the dependencies of this project:
```bash
$ npm install --save-dev eslint eslint-plugin-filenames
```If you use React, also have a look at the [`eslint-config-strict-react`](https://github.com/keithamus/eslint-config-strict-react) plugin.
## Usage
This set of configs is meant to be extended on a per-project basis as necessary
using ESLint's [shareable configs][] feature.To start, you probably want to use pick either `strict/es6` or `strict/es5` (note:
`strict` can be used as an alias for `strict/es6`). You can then layer additional
rulesets on top using eslint, the additive rules are:This package includes the following configurations:
- `strict/mocha` (adds `env.mocha` true, `assert`, `expect`, `must` and `should` are
added as globals, and `func-names`, `padded-blocks` and `max-nested-callbacks` rules
are explicitly turned off)
- `strict/browser` (simply sets `env.browser` to true)
- `strict/d3` (relaxes strict identifier rules, allowing for identifiers like `d3`, `d`, `dx`, `dy`)
- `strict/babel` (for use with the [`eslint-plugin-babel`](https://github.com/babel/eslint-plugin-babel) plugin)### How to use
Simply define your `.eslintrc` (or add a `eslintConfig` object to `package.json`)
like so:```json
{
"extends": ["strict"]
}
```Add any additional plugins you want, for example:
```json
{
"extends": ["strict", "strict/browser"]
}
```Also, you can define a `test/.eslintrc` to override the projects main one:
```json
{
"extends": ["strict", "strict/browser", "strict/mocha"]
}
```If your project is a front-end project and you're not transpiling ES6 code, you
might have an `.eslintrc` that looks like this:```json
{
"extends": ["strict/es5", "strict/browser"]
}
```Feel free to define additional globals or rules, or override them as you see fit:
```json
{
"extends": ["strict"],"globals": {
"blarg": true
},"rules": {
"eol-last": 0
}
}
```For more details about how shareable configs work, see the
[ESLint documentation][extend].[shareable configs]: http://eslint.org/docs/developer-guide/shareable-configs
[extend]: http://eslint.org/docs/user-guide/configuring#extending-configuration-files