ESLint and Prettier Setup
ESLint and prettier rules for my personal projects.
Installation
Install eslint and this module in your
project's devDependencies
:
npm install --save-dev eslint eslint-config-daun
Usage
Extend the main config from your .eslintrc.js
:
module.exports = {
extends: 'daun',
rules: {
}
}
Other configs
This config also exposes a few other configs that can be pulled in as needed.
You can use them standalone:
module.exports = {
extends: 'daun/<config-name>',
}
Or in combination with the base config (recommended):
module.exports = {
extends: ['daun', 'daun/<config-name>'],
}
Peer dependencies
We need to patch ESLint to recognize the associated plugins without having to
install them as local dependencies. See
this bug for details.
Add this to the top of your .eslintrc.js
:
require('eslint-config-daun/eslint-patch/module-resolution')
module.exports = {
extends: ['daun']
}
babel-module
:
babel-plugin-module-resolver
for the import plugin to work with the module-resolver babel plugin
(eslint-plugin-import and eslint-import-resolver-babel-module)jest
: jest testing frameworkvue
: Vue JS library
(eslint-plugin-react)webpack
: Webpack for the import plugin
to work with webpack overloaded imports/requires (eslint-plugin-import,
eslint-import-resolver-alias and eslint-import-resolver-webpack)
Things to know
- The default config uses
babel-eslint
to support stage features that ESLint
doesn't support and it opts to use the eslint-plugin-babel
rules over the
ESLint rules to support rules for these features as well. - All plugins needed for rules used by these configs are dependencies of this
module so you don't have to install anything on your own.
- The default config actually is composed of several configurations and you can
use those individually. These are the configs it's using:
possible-errors.js
, best-practices.js
, stylistic.js
, es6/index.js
, and
import/index.js
. Also, the es6
and import
configs each have a
possible-errors.js
, best-practices.js
, and stylistic.js
which they are
composed of as well.
Example of customized config
module.exports = {
extends: [
'daun/possible-errors',
'daun/best-practices',
'daun/es6/possible-errors',
'daun/import',
'daun/jest',
'daun/vue'
],
rules: {
}
}