Как глобально установить ESLint с поддержкой TypeScript?

Я хотел бы настроить мою установку GLOBAL eslint для линтинга моего проекта машинописного текста в Visual Studio Code.

Итак, я установил расширение Visual Studio Code "ESLint" и установил ESLint с

npm install -g eslint

Согласно https://www.npmjs.com/package/@typescript-eslint/eslint-plugin также требуется @typescript-eslint/eslint-plugin глобально, поэтому я запустил

npm install -g @typescript-eslint/parser @typescript-eslint/eslint-plugin

установить его вместе с ts parse @typescript-eslint/parser.

Затем я добавил очень простой .eslintrc-файл:

{
    "parser": "@typescript-eslint/parser",
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module"
    },
    "rules": { }
}

Однако как только я запускаю eslint . в директории моего проекта, я получаю:

Error: Failed to load parser '@typescript-eslint/parser' declared in '.eslintrc.js': Cannot find module '@typescript-eslint/parser'

Затем я попытался удалить глобально установленный парсер и установить его локально, но это тоже не сработает: теперь моя установка global eslint может найти мой локальный парсер, но парсеру требуется еще одна локальная установка typescript, eslint и т. д. Однако я хочу запускать все глобально.

Я просто не могу заставить его работать! Может ли кто-нибудь помочь мне с этим процессом?


person Christian    schedule 30.09.2019    source источник


Ответы (1)


Вот некоторые предложения...

В вашем .eslintrc вы не указали плагин '@ typescript-eslint' ...

"плагины": ["@ typescript-eslint"],

Кроме того, если у вас это работает, вы также захотите указать parserOptions.project & tsconfigRootDir с абсолютным путем, потому что найти свой tsconfig.json - чтобы вы могли использовать правила, требующие информации о типе, - сложнее при глобальной установке.

Кроме того, я думаю, вам нужно явно указать плагину eslint для проверки ваших файлов TS (и, возможно, js и реагировать и т. Д., По желанию) с настройками vsc ....

"eslint.validate": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact"
],  

НО, я боюсь, что все это ненадежное предприятие .... обратите внимание, что в говорится ...

Также можно установить ESLint глобально, а не локально (используя npm install eslint --global). Однако это не рекомендуется, и любые плагины или общие конфигурации, которые вы используете, должны быть установлены локально в любом случае.

Я отмечаю здесь, что глобальная установка не рекомендуется, но также то, что эта цитата, кажется, противоречит указанной вами ссылке, в которой говорится об установке плагина глобально. Я не уверен, что правильно, так как я перестал настраивать его таким образом, так как это не рекомендуется. Надеюсь, это тем не менее поможет.

person Tom    schedule 10.10.2019
comment
Спасибо, Том! В самом деле, кажется, что с ESLint 6.0.0 поддержка глобальных установок и плагин машинописного текста несколько нарушена. Я много пробовал, но никак не мог заставить его работать. Я пошел с локальной установкой, и все выглядит нормально. В любом случае спасибо за ваш ответ! - person Christian; 16.10.2019