Skip to content

teppeis/eslint-config-teppeis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1,398 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

eslint-config-teppeis

ESLint config set for me!

npm version supported node.js version build status license

Priority

  1. Avoid "Possible Errors"
  2. Keep "Best Practices" if common
  3. Use "Modern Style (ES2015+)" if available
  4. Format "Stylistic Issues" if fixable or use Prettier

This rules is based on eslint:recommended. Only additional or orverwritten rules are specified.

Usage

Install

for npm v6

$ npm i -D eslint-config-teppeis eslint prettier

for npm v7+

$ npm i -D eslint-config-teppeis

eslint and prettier are installed as peer dependencies.

Configure

Specify in your .eslintrc.json:

{
  "extends": "teppeis"
}

Default config equals to teppeis/es2018.

Choose base ECMAScript version

{
  "extends": "teppeis/es2015"
}
  • teppeis/es5
  • teppeis/es2015
  • teppeis/es2016
  • teppeis/es2017
  • teppeis/es2018
  • teppeis/es2019
  • teppeis/es2020
  • teppeis/es2021
  • teppeis/es2022
  • teppeis/es2023: equals to teppeis

For Node.js

They include eslint-plugin-n.

With specific version

Chose config for specific Node version

{
  "extends": ["teppeis/node-v18"]
}
  • teppeis/node-v18 (v18.17+ Active LTS)
  • teppeis/node-v20 (v20.5+ Current)

With Babel or other transpilers

Extends teppeis/+node after base config.

{
  "extends": ["teppeis/es2018", "teppeis/+node"]
}

In teppeis/+node, n/no-unsupported-features/es-syntax is disabled. Available ES features depend on the base config.

n/no-unsupported-features/es-builtins and n/no-unsupported-features/node-builtins are enabled. It is assumed that polyfill is not used.

Customize

Use Prettier

This plugin includes prettier itself in peerDependencies.

Override dupulicated or conflicted rules with teppeis/+prettier.

{
  "extends": ["teppeis/es2018", "teppeis/+prettier"]
}

For TypeScript

Configs for TypeScript (applied only for *.ts and *.tsx).

  • teppeis/+typescript: Enable rules that don't require type information
  • teppeis/+typescript-with-type: Require type information (slow)
{
  "extends": ["teppeis/node-v18", "teppeis/+typescript", "teppeis/+prettier"]
}

For ES Modules

By default, only *.mjs and *.mts are treated as ES Modules in configs for Node.js. If you use type:module in package.json, use teppeis/+module like:

{
  "extends": ["teppeis/node-v18", "teppeis/+module"]
}

or for TypeScript like:

{
  "extends": ["teppeis/node-v18", "teppeis/+typescript", "teppeis/+module"]
}

For browsers

This adds browser to env.

{
  "extends": ["teppeis/es2018", "teppeis/+browser"]
}

For Closure Compiler coding style

Extends teppeis/+closure after base config.

{
  "extends": ["teppeis/es2015", "teppeis/+closure"]
}

Use Mocha for testing

This enables mocha globals like describe or it in **/test/*.js.

{
  "extends": ["teppeis/es2018", "teppeis/+mocha"]
}

License

Licensed under the MIT license. Copyright (c) 2021, Teppei Sato

About

ESLint shareable config for me!

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors