0.9.6 • Published 2 months ago
@getjerry/eslint-config v0.9.6
@getjerry/eslint-config
Usage
Install
pnpm i -D eslint @getjerry/eslint-config
Create config file
With ESM:
// eslint.config.js
import { getjerry } from '@getjerry/eslint-config';
export default getjerry({
typescript: {
tsconfigPath: './tsconfig.json',
},
});
With CJS:
// eslint.config.js
const { getjerry } = require('@getjerry/eslint-config');
module.exports = getjerry({
typescript: {
tsconfigPath: './tsconfig.json',
},
});
Add scripts for package.json
For example:
{
"scripts": {
"lint": "eslint .",
"lint:fix": "eslint . --fix"
}
}
Work together with prettier
:
{
"scripts": {
"lint": "eslint . && prettier --check .",
"lint:fix": "eslint --fix . && prettier --write ."
}
}
Customizations
Override rules
// eslint.config.js
import { getjerry } from '@getjerry/eslint-config';
export default getjerry({
typescript: {
// override rules for typescript
overrides: {
'@typescript-eslint/no-explicit-any': 'off',
},
},
});
// eslint.config.js
import { getjerry } from '@getjerry/eslint-config';
export default getjerry(
{
javascript: {
// override rules for javascript files
overrides: {
'no-console': 'off',
},
},
typescript: {
// override rules for typescript files
overrides: {
'@typescript-eslint/no-explicit-any': 'off',
},
},
},
// override rules with glob pattern
{
files: ['**/*.spec.ts'],
rules: {
'@typescript-eslint/no-explicit-any': 'off',
},
},
);
Ignore files
Notice that .eslintignore
is no longer supported in flat config.
// eslint.config.js
import { getjerry } from '@getjerry/eslint-config';
export default getjerry({
ignores: ['**/path/to/ignore'],
});
Disable react rules
// eslint.config.js
import { getjerry } from '@getjerry/eslint-config';
export default getjerry({
react: false,
});
Set glob pattern for react rules
// eslint.config.js
import { getjerry } from '@getjerry/eslint-config';
export default getjerry({
react: {
files: ['app/signup/**/*.ts?(x)'],
},
});
Editor Integration
VSCode settings
Add the following settings to your .vscode/settings.json
:
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.insertSpaces": true,
"editor.tabSize": 2,
// important to use the new flat config format
"eslint.experimental.useFlatConfig": true,
"eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"],
"files.encoding": "utf8",
"files.eol": "\n",
"files.trimFinalNewlines": true,
"files.trimTrailingWhitespace": true,
"[markdown]": {
"files.trimTrailingWhitespace": false,
},
}