Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joncursi/eslint-config
My preferred configs for CommitLint, ESLint, MarkdownLint, Prettier, and TypeScript.
https://github.com/joncursi/eslint-config
eslint eslintconfig
Last synced: about 1 month ago
JSON representation
My preferred configs for CommitLint, ESLint, MarkdownLint, Prettier, and TypeScript.
- Host: GitHub
- URL: https://github.com/joncursi/eslint-config
- Owner: joncursi
- License: mit
- Created: 2017-02-17T04:09:42.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-09-13T17:16:22.000Z (over 4 years ago)
- Last Synced: 2024-11-16T02:29:32.126Z (2 months ago)
- Topics: eslint, eslintconfig
- Language: Ruby
- Homepage: https://joncursi.com
- Size: 128 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# ESLint Config
⚙️ My preferred configs for CommitLint, ESLint, MarkdownLint, Prettier, and TypeScript.
[![CircleCI](https://circleci.com/gh/joncursi/eslint-config.svg?style=shield)](https://circleci.com/gh/joncursi/eslint-config)
## Getting Started
Install this package, [husky](https://github.com/typicode/husky), and
[lint-staged](https://github.com/okonet/lint-staged) as a dev dependencies:```shell
npm install --save-dev @joncursi/eslint-config husky lint-staged
```Configure husky by adding the following to your `package.json` file:
```json
...
"husky": {
"hooks": {
"pre-commit": "lint-staged"
}
},
...
```## Configure CommitLint
To configure [CommitLint](https://github.com/marionebl/commitlint), create a
`commitlint.config.js` file in the root of your project that contains the
following:```js
/**
* @prettier
*/// eslint-disable-next-line immutable/no-mutation
module.exports = require('@joncursi/eslint-config/commitlint.config');
```This will allow CommitLint to discover the configuration this repository
provides from within your `node_modules` folder.Next, add the following to your `package.json` file so that CommitLint will
check for infractions in your commit messages every time you create a new
commit:```json
...
"husky": {
"hooks": {
...
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS",
...
}
},
...
```## Configure ESLint
To configure [ESLint](https://eslint.org/), add the following to your
`package.json` file. This will allow ESLint to discover the configuration this
repository provides from within your `node_modules` folder, and will check
your `*.js`, `*.ts`, and `*.tsx` files for infractions every time you create a
new commit:```json
...
"eslintConfig": {
...
"extends": [
...
"@joncursi/eslint-config",
...
],
...
},
...
"lint-staged": {
...
"*.{js,ts,tsx}": "eslint",
...
},
...
```## Configure MarkdownLint
To configure [MarkdownLint](https://github.com/DavidAnson/markdownlint), add the
following to your `package.json` file. This will allow MarkdownLint to discover
the configuration this repository provides from within your `node_modules`
folder, and will check your `*.md` files for infractions every time you create
a new commit:```json
...
"lint-staged": {
...
"*.{md}": "markdownlint --config node_modules/@joncursi/eslint-config/markdownlint.config.json",
...
},
...
```## Configure Prettier
To configure [prettier](https://prettier.io/), create a `prettier.config.js`
file in the root of your project that contains the following:```js
/**
* @prettier
*/// eslint-disable-next-line immutable/no-mutation
module.exports = require('@joncursi/eslint-config/prettier.config');
```This will allow Prettier to discover the configuration this repository
provides from within your `node_modules` folder.Next, add the following to your `package.json` file so that prettier will check
your files for infractions every time you create a new commit:```json
...
"lint-staged": {
...
"*.{js,json,md,ts,tsx}": [
"prettier --write",
"git add"
]
...
},
...
```## Configure TypeScript
To configure [TypeScript](https://www.typescriptlang.org/), add the following
to your `tsconfig.json` file. This will allow TypeScript to discover the
configuration this repository provides from within your `node_modules` folder:```json
...
"extends": "node_modules/@joncursi/eslint-config/tsconfig.json",
...
```## Testing
To check for infractions in this codebase, run:
```shell
npm test
```