An ESLint runner for Jest
 

Install jest_(it needs Jest 21+)_ and jest-runner-eslint
``bash
yarn add --dev jest jest-runner-eslint
npm install --save-dev jest jest-runner-eslint
`
#### Standalone
In your package.json
`json`
{
"jest": {
"runner": "jest-runner-eslint",
"displayName": "lint",
"testMatch": ["
}
}
Or in jest.config.js
`js`
module.exports = {
runner: 'jest-runner-eslint',
displayName: 'lint',
testMatch: ['
};
Please update testMatch to match your project folder structure
#### Alongside other runners
It is recommended to use the projects configuration option to run multiple Jest runners simultaneously.
If you are using Jest <22.0.5, you can use multiple Jest configuration files and supply the paths to those files in the projects option. For example:
`js
// jest-test.config.js
module.exports = {
// your Jest test options
displayName: 'test',
};
// jest-eslint.config.js
module.exports = {
// your jest-runner-eslint options
runner: 'jest-runner-eslint',
displayName: 'lint',
testMatch: ['
};
`
In your package.json:
`json`
{
"jest": {
"projects": [
"
"
]
}
}
Or in jest.config.js:
`js`
module.exports = {
projects: [
'
'
],
};
If you are using Jest >=22.0.5, you can supply an array of project configuration objects instead. In your package.json:
`json`
{
"jest": {
"projects": [
{
"displayName": "test"
},
{
"runner": "jest-runner-eslint",
"displayName": "lint",
"testMatch": ["
}
]
}
}
Or in jest.config.js:
`js`
module.exports = {
projects: [
{
displayName: 'test',
},
{
runner: 'jest-runner-eslint',
displayName: 'lint',
testMatch: ['
},
],
};
`bash`
yarn jest
in watch modejest-runner-eslint comes with a watch plugin that allows you to toggle the --fix value while in watch mode without having to update your configuration.
!fix
To use this watch plugin simply add this to your Jest configuration.
`js`
{
watchPlugins: ['jest-runner-eslint/watch-fix'],
}
After this run Jest in watch mode and you will see the following line in your watch usage menu
``
› Press F to override ESLint --fix.
This project uses cosmiconfig, so you can provide config via:
- a jest-runner-eslint property in your package.jsonjest-runner-eslint.config.js
- a JS file.jest-runner-eslintrc
- a JSON file
In package.json
`json`
{
"jest-runner-eslint": {
"cliOptions": {
// Options here
}
}
}
or in jest-runner-eslint.config.js
`js`
module.exports = {
cliOptions: {
// Options here
},
};
jest-runner-eslint maps a lot of ESLint CLI arguments to config options. For example --fix is cliOptions.fix
| option | default | example |
| ----------------------------- | -------------- | --------------------------------------------------------------------------------------------- |
| cache | false | "cache": true |.eslintcache
| cacheLocation | | "cacheLocation": "/path/to/cache" |null
| config | | "config": "/path/to/config" |null
| env | | "env": "mocha" or "env": ["mocha", "other"] |[".js"]
| ext | | "ext": ".jsx" or "ext": [".jsx", ".ts"] |false
| fix | | "fix": true |false
| fixDryRun | | "fixDryRun": true |null
| format | | "format": "codeframe" |[]
| global | | "global": "it" or "global": ["it", "describe"] |null
| ignorePath | | "ignorePath": "/path/to/ignore" |[]
| ignorePattern | | "ignorePattern": ["/path/to/ignore/*"] |-1
| maxWarnings | | "maxWarnings": 0 |false
| noEslintrc | | "noEslintrc": true |false
| noIgnore | | "noIgnore": true |false
| noInlineConfig | | "noInlineConfig": true |espree
| parser | | "parser": "flow" |{}
| parserOptions | | "parserOptions": { "myOption": true } |[]
| plugin | | "plugin": "prettier" or "plugin": ["prettier", "other"] |false
| quiet | | "quiet": true |undefined
| resolvePluginsRelativeTo | | "resolvePluginsRelativeTo": "./eslint-config" |false
| reportUnusedDisableDirectives | | "reportUnusedDisableDirectives": true |{}
| rules | | "rules": {"quotes": [2, "double"]} or "rules": {"quotes": [2, "double"], "no-console": 2} |[]
| rulesdir | | "rulesdir": "/path/to/rules/dir" or "rulesdir": ["/path/to/rules/dir", "/path/to/other"]` |