Поддержка нескольких версий ESLint в VS Code - PullRequest
0 голосов
/ 25 февраля 2020

Я использую плагин ESLint от Dirk Baeumer в коде Visual Studio.

Мой проект большой и сложный и разделен на несколько основных каталогов. Каждый каталог имеет собственный пакет. json file, собственный каталог node_modules и собственную версию eslint. Это вызывает havo c после обновления до ESLint 6, потому что мои плагины ESLint не будут разрешать .

Как мне настроить плагин ESLint для соответствия версии eslint, используемой в каждом каталоге? Я думаю, что это как-то связано с настройкой eslint.workingDirectories, но я не понимаю, как правильно ее использовать.

Дополнительная информация:

В рабочем пространстве моего проекта есть две директории root , "folder1" и "folder2". Структура каталогов выглядит примерно так:

folder1
  .eslintrc.json -- rules for the entire "folder1" project to follow

  build
  platform
  core
    Makefile
    core-v1
      .eslintrc.json
      Makefile
      package.json -- eslint v4
      node_modules
    core-v2
      .eslintrc.json
      Makefile
      package.json -- eslint v6
      node_modules
folder2

Мой файл конфигурации рабочей области включает в себя:

        "eslint.workingDirectories": [
            "./folder1/core/core-v1",
            "./folder1/core/core-v2"
        ]

Кажется, что это приводит к следующей ошибке, и ошибки распознавания не обнаруживаются и не выделяются:

Uncaught exception received.
Error: spawn /Applications/Visual Studio Code - Insiders.app/Contents/Frameworks/Code - Insiders Helper (Renderer).app/Contents/MacOS/Code - Insiders Helper (Renderer) ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:77:11)

Как настроить плагин ESLint для использования eslint v4 для файлов в "folder1 / core / core-v1" и v6 для файлов в "folder1 / core / core-v2"? Мой процесс сборки запускает отдельные сценарии для этих каталогов, но мой редактор (VS Code) пытается использовать v4 или v6, чтобы связать все файлы в моем проекте.

1 Ответ

0 голосов
/ 26 февраля 2020

Во-первых, рабочие каталоги не могут содержать root имен папок:

        "eslint.workingDirectories": [
            "./core/core-v1",
            "./core/core-v2"
        ]

Кажется, это правильно идентифицирует рабочие каталоги и позволяет версии 6 ESLint корректно разрешать плагины, например c. Он также применяет правила v6 к core-v2, но по-прежнему использует правила v4 для core-v1, поэтому я считаю, что это правильно.

Одна проблема, которая до сих пор не решена полностью, - это то, как это работает с несколькими - root рабочих мест. Это прекрасно работает для folder1. folder2 только кажется, что работает, хотя я не могу объяснить, почему, поскольку он не идентифицирован как рабочий каталог. К счастью, нет противоречивых путей, но что бы я сделал, если бы были? Это может стоить отдельного вопроса, но я, кажется, сейчас в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...