Skip to content

Commit

Permalink
fix: eslint shared config with readme
Browse files Browse the repository at this point in the history
  • Loading branch information
Nelfimov committed Nov 30, 2023
1 parent ec132e5 commit 28e72e3
Show file tree
Hide file tree
Showing 16 changed files with 2,916 additions and 2,044 deletions.
9 changes: 9 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
require('@rushstack/eslint-patch/modern-module-resolution')

module.exports = {
extends: ['./config/eslint/src/working-example/index.js'],
parserOptions: {
project: './tsconfig.json',
},
ignorePatterns: ['.eslintrc.js'],
}
11 changes: 11 additions & 0 deletions .pnp.cjs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file not shown.
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
**ВАЖНО:** Мы используем [собственный бандл](https://yarnpkg.com/builder/cli/build/bundle) ярна для запуска собственных скриптов.

Для начала использования нашей сборки:

- `yarn set version https://raw.githubusercontent.com/atls/tools/master/yarn/cli/bundles/yarn.js` - эта команда установит вместо стокового ярна наш и положит в папку .yarn/releases, если же наша сборка уже установленна - произойдёт обновление до актуальной версии

## Основные скрипты `yarn` для нашей работы
Expand Down
54 changes: 54 additions & 0 deletions config/eslint/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# @atls/config-eslint

Наш собственный конфиг для `eslint`

## Инструкция по применению

1. Установить в корень проекта зависимость
- `@atls/config-eslint`
- `@rushstack/eslint-patch`, рабочая версия 1.6.0 (необходим чтобы `eslint` брал плагины и
парсеры из пакета с нашей зависимостью, а не требовал ее установку в каждом проекте)
2. (пока мы на 8 версии `eslint`) необходимо сделать анплаг конфига: `yarn unplug @atls/config-eslint`
3. В корне проекта создать `.eslintrc.js`
4. Вставить в него:

```js
require('@rushstack/eslint-patch/modern-module-resolution')

module.exports = {
// прописать путь до нашего пакета.
// В светлом будущем можно будет так: '@atls/config-eslint'
// А пока через анплаг, то будет что то вроде
// './.yarn/unplugged/@atls-config-eslint-npm-0.0.9-eb6c230fca/node_modules/@atls/config-eslint/dist/.eslintrc.js'
extends: ['./config/eslint/dist/eslintrc.js'],
parserOptions: {
// Ссылка на рутовый tsconfig.
// eslint смотрит на inlude и проверяет только эти файлы.
project: './tsconfig.json',
},
// Это чтобы eslint не проверял ваш конфиг.
// Можно добавить и другие файлы по необходимости.
ignorePatterns: ['.eslintrc.js'],
}
```

5. Добавить настройки для вашей IDE:

- Настройки - ESLint:
- Manual ESLint Configuration - выбрать
- ESLint package - дать ссылку до рута (`yarn:package.json:eslint`)
- Configuration File - дать ссылку до вашего созданного `.eslintrc.js` в руте
(`/Users/*/*/*/atlantis/tools/.eslintrc.js`)

6. Проверить `include` в рутовом `tsconfig.json` чтобы содержал все папки с рабочими файлами

## Рекомендация для IDE

Плагин для JetBrains IDE `Inspection Lens` - пишет ошибки рядом с кодом без необходимости
наведению мышью или F2.

## Для будущих соискателей приключений

В `src/working-example` лежат рабочие на момент написания конфиги. К сожалению они не
компилируются из `index.ts`, поэтому приходится держать дубликат `eslint.ts` в котором уже
сделано как надо.
2 changes: 1 addition & 1 deletion config/eslint/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"dist"
],
"scripts": {
"build": "yarn library build && node -e 'const fs = require(\"fs\"); const config = require(\"./dist/.eslintrc.js\"); fs.writeFileSync(\"./dist/.eslintrc.json\", JSON.stringify(config, null, 2))'",
"build": "yarn library build",
"prepack": "yarn run build",
"postpack": "rm -rf dist"
},
Expand Down
Loading

0 comments on commit 28e72e3

Please sign in to comment.