@n3/eslint-config
v1.0.1
Published
N3 ESLint config, following our styleguide
Readme
@n3/eslint-config
Установка
npm install @n3/eslint-config --save-devили
yarn add @n3/eslint-config --devКонфигурация
Пакет содержит отдельные настройки линтера для JavaScript, TypeScript и React, объединяющие правила Airbnb и внутренние стандарты компании.
// eslint.config.mjs
import { defineConfig, globalIgnores } from 'eslint/config';
import configs from '@n3/eslint-config';
export default defineConfig([
globalIgnores([
'**/*',
'!src/**',
]),
// JavaScript config
...configs.vanilla,
// React config
...configs.react,
// TypeScript config
...configs.typescript,
]);Долнительно требуется настроить разрешение имён через import-x/resolver, настройки могут отличаться в зависимости от структуры проекта
Разрешение имен через webpack
- установить Webpack-резолвер
npm install eslint-import-resolver-webpack --save-devили
yarn add eslint-import-resolver-webpack --dev- создать файл eslint.config.mjs со следующим содержимым, при необходимости изменить путь к конфигурации webpack
// eslint.config.mjs
import { defineConfig, globalIgnores } from 'eslint/config';
import configs from '@n3/eslint-config';
export default defineConfig([
globalIgnores([
'**/*',
'!src/**',
]),
// JavaScript config
...configs.vanilla,
// React config
...configs.react,
// TypeScript config
...configs.typescript,
{
settings: {
'import-x/resolver': {
webpack: {
config: './webpack.config.js',
},
node: true,
},
},
}
]);Разрешение имен через typescript
- установить TypeScript-резолвер
npm install eslint-import-resolver-typescript --save-devили
yarn add eslint-import-resolver-typescript --dev- создать файл eslint.config.mjs со следующим содержимым, при необходимости изменить путь к конфигурации typescript
// eslint.config.mjs
import { defineConfig, globalIgnores } from 'eslint/config';
import configs from '@n3/eslint-config';
export default defineConfig([
globalIgnores([
'**/*',
'!src/**',
]),
// JavaScript config
...configs.vanilla,
// React config
...configs.react,
// TypeScript config
...configs.typescript,
{
settings: {
'import-x/resolver': {
typescript: {
project: './tsconfig.json',
},
node: true,
},
},
}
]);Разрешение имен через babel
- установить Babel-резолвер
npm install eslint-import-resolver-babel-module --save-devили
yarn add eslint-import-resolver-babel-module --dev- создать файл eslint.config.mjs со следующим содержимым, при необходимости изменить путь к конфигурации babel
// eslint.config.mjs
import { defineConfig, globalIgnores } from 'eslint/config';
import configs from '@n3/eslint-config';
export default defineConfig([
globalIgnores([
'**/*',
'!src/**',
]),
// JavaScript config
...configs.vanilla,
// React config
...configs.react,
// TypeScript config
...configs.typescript,
{
settings: {
'import-x/resolver': {
'babel-module': {
config: './babel.config.js',
},
node: true,
},
},
}
]);Проверка кода
Добавить в scripts в package.json следующую команду:
"lint": "eslint <path_to_src1> <path_to_src2> <...>",