@ooo-inex/eslint-config v1.4.10
Описание
Пакет с конфигурациями eslint. Цель - унифицировать конфигурации eslint для фронтовых проектов. Подробнее: https://wiki.oooinex.ru/display/TECH/Front.+Eslint.
Использование для js-файлов (*.js)
В проекте установить пакеты @babel/preset-env, @babel/eslint-parser, @ooo-inex/eslint-config и eslint-plugin-jsdoc (для линтинга JSDoc, опционально):
npm i -D @babel/preset-env @babel/eslint-parser @ooo-inex/eslint-config eslint-plugin-jsdoc
В файле конфигурации ESLint импортировать необходимую конфигурацию:
import babelParser from '@babel/eslint-parser';
import jsdoc from 'eslint-plugin-jsdoc';
import primaryConfig from '@ooo-inex/eslint-config/configs/primary.js';
import jsdocConfig from '@ooo-inex/eslint-config/configs/jsdocConfig.js';
...
{
files: ['**/*.js'],
ignores: ['**/dist/**'],
languageOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
parser: babelParser,
parserOptions: {
babelOptions: {
presets: ['@babel/preset-env'],
},
},
},
plugins: { jsdoc },
rules: {
...primaryConfig.rules,
...jsdocConfig.rules,
},
},
Использование для Cypress (*.spec.js)
В проекте установить пакеты eslint-plugin-cypress и @ooo-inex/eslint-config:
npm i -D eslint-plugin-cypress @ooo-inex/eslint-config
В файле конфигурации ESLint импортировать необходимую конфигурацию:
import cypress from 'eslint-plugin-cypress';
import cypressConfig from '@ooo-inex/eslint-config/configs/cypressConfig';
...
{
files: ['**/*.spec.js'],
plugins: { cypress },
rules: {
...cypressConfig.rules,
'no-unused-expressions': 'off', // чтобы не ругался на expect
},
},
Использование для vue-файлов (*.vue)
В проекте установить пакеты eslint-plugin-vue, vue-eslint-parser, @babel/eslint-parser' и
@ooo-inex/eslint-config:
npm i -D eslint-plugin-vue vue-eslint-parser @babel/eslint-parser @ooo-inex/eslint-config
В файле конфигурации ESLint импортировать необходимую конфигурацию:
import vue from 'eslint-plugin-vue';
import vueParser from 'vue-eslint-parser';
import babelParser from '@babel/eslint-parser';
import vueConfig from '@ooo-inex/eslint-config/configs/vueConfig';
...
// Vue-файлы
{
files: ['**/*.vue'],
languageOptions: {
ecmaVersion: 'latest',
parser: vueParser, // <template>
parserOptions: {
parser: babelParser, // <script>
},
},
plugins: { vue },
rules: {
...vueConfig.rules,
},
},
Добавление новых конфигураций
Конфигурации складываем в папку configs.
Правка конфига в проекте "на лету"
При необходимости можно перетереть правила, например:
rules: {
...primaryConfig.rules,
"no-console": "error"
},
Но в целом, лучше предварительно вынести на обсуждение, почему хотим изменить правило. Возможно его надо поменять в пакете, а не в конкретном проекте.
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago