Невозможно заставить eslint работать в редакторе Atom
На данный момент я совершенно заблудился, как заставить ESLint установить и работать с использованием Atom. Так что я собираюсь опубликовать шаг за шагом, и было бы действительно здорово, если бы кто-то мог помочь заставить это работать.
- Атом: 1.19.5
- Атом, линтер 2.2.0
- Атом, линтер-эслинт 8.2.1
Я удалил и переустановил плагины Atom и отключил все остальные плагины, кроме тех, что в Core и 2 линтерах.
npm list -g --depth=0
Все глобальные установки:
├── create-react-app@1.0.4
├── create-react-native-app@1.0.0
├── eslint@4.6.1
├── express-generator@4.14.1
├── json-server@0.9.5
├── mocha@3.2.0
├── nodemon@1.11.0
├── npm@3.10.10
├── pushstate-server@2.2.1
├── react-native-cli@2.0.1
├── react-vr-cli@0.3.5
├── webpack@2.2.1
├── webpack-dev-server@2.3.0
└── yarn@0.21.3
Вот те попытки, которые я предпринял, чтобы заставить eslint работать в моем проекте Atom:
npm install -g eslint
cd /into/project
eslint --init
? How would you like to configure ESLint? > User a popular style guide
? Which style guide do you want to follow? >Airbnb
? Do you use React? > y
? What format do you want your config file to be in? > JSON
- удалять
/node_modules
npm install
/ project / node_modules.eslintrc.json index.js package.json
.eslintrc.json
{
"extends": "airbnb"
}
package.json
{
"name": "lint-test",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"devDependencies": {
"eslint": "^4.6.1",
"eslint-config-airbnb": "^15.1.0",
"eslint-config-rallycoding": "^3.2.0",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-jsx-a11y": "^5.1.1",
"eslint-plugin-react": "^7.3.0"
}
}
index.js
Это просто файл, пытающийся получить какой-то тип результатов от eslint
ошибки
[Linter] Ошибка при запуске ESLint (открыть консоль разработчика)
Configuration for rule "jsx-a11y/anchor-has-content" is invalid: Value "[object Object]" no (or more than one) schemas match.
- Так что пошли в eslint-plugin-jsx #168
В консоли разработчика Atom ошибок нет. Но также ничего не происходит с Linter в редакторе Atom. Я могу напечатать бред, и ничего не происходит.
Запуск отладки
DEBUG=eslint:* eslint .
Результаты отладки:
Cannot find module 'eslint-config-airbnb'
Referenced from: /Users/user/development/lint-test/.eslintrc.json
Error: Cannot find module 'eslint-config-airbnb'
Referenced from: /Users/user/development/lint-test/.eslintrc.json
at ModuleResolver.resolve (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/util/module-resolver.js:74:19)
at resolve (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/config/config-file.js:515:25)
at load (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/config/config-file.js:584:26)
at configExtends.reduceRight.e (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/config/config-file.js:421:36)
at Array.reduceRight (native)
at applyExtends (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/config/config-file.js:403:28)
at loadFromDisk (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/config/config-file.js:556:22)
at Object.load (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/config/config-file.js:592:20)
at Config.getLocalConfigHierarchy (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/config.js:226:44)
at Config.getConfigHierarchy (/Users/user/.nvm/versions/node/v6.9.5/lib/node_modules/eslint/lib/config.js:180:43)
На данный момент я предполагаю, что он пытается читать из глобального, а не локального
- eslint eslint-config-airbnb error #465
- обновленный
.eslintrc.json
в"extends": "eslint-config-airbnb",
Теперь снова ничего не происходит, снова запустите debug
DEBUG=eslint:* eslint .
Все еще не могу найти модуль
- Попробуйте предложения в настройке редактора Atom с помощью eslint
На данный момент я все еще сталкиваюсь с Cannot find module 'eslint-config-airbnb'
- Выполняется npm eslint-config-airbnb
- выполнил все команды
Новый локальный package.json
"devDependencies": {
"eslint": "^4.6.1",
"eslint-config-airbnb": "^15.1.0",
"eslint-plugin-import": "^2.7.0",
"eslint-plugin-jsx-a11y": "^5.1.1",
"eslint-plugin-react": "^7.3.0"
}
npm install -g eslint-config-airbnb
Новые глобальные модули
├── create-react-app@1.0.4
├── create-react-native-app@1.0.0
├── eslint@4.6.1
├── eslint-config-airbnb@15.1.0
├── eslint-plugin-import@2.7.0
├── UNMET PEER DEPENDENCY eslint-plugin-jsx-a11y@6.0.2
├── eslint-plugin-react@7.3.0
├── express-generator@4.14.1
├── install-peerdeps@1.1.3
├── json-server@0.9.5
├── mocha@3.2.0
├── nodemon@1.11.0
├── npm@3.10.10
├── pushstate-server@2.2.1
├── react-native-cli@2.0.1
├── react-vr-cli@0.3.5
├── webpack@2.2.1
├── webpack-dev-server@2.3.0
└── yarn@0.21.3
Так что теперь я могу бежать DEBUG=eslint:* eslint .
и может получить некоторые результаты. Однако ничто не работает в Атоме.
Результаты:
/Users/user/development/lint-test/index.js
1:1 error Definition for rule 'jsx-a11y/href-no-hash' was not found jsx-a11y/href-no-hash
1:7 error 'config' is assigned a value but never used no-unused-vars
1:24 error Unable to resolve path to module '../something' import/no-unresolved
1:39 error Missing semicolon semi
✖ 4 problems (4 errors, 0 warnings)
1 error, 0 warnings potentially fixable with the `--fix` option.
На данный момент у меня нет идей о том, как заставить Atom работать с eslint...
2 ответа
Не углубляясь в проблему и не найдя конкретную точку отказа, я решил начать все сначала.
- Удалить модули глобального узла.
- Удалите все неосновные плагины и темы Atom.
- удалить Atom.
- переустановите Atom.
- установить ESLint и только поддерживающие зависимости.
Благодаря этому я смог запустить ESLint без проблем. Мое предположение во всем этом - конфликт в плагине или теме. Оттуда установка моих основных инструментальных плагинов прошла успешно.
Снимите флажок "Использовать глобальную установку ESLint" в linter-eslint ATOM, чтобы сделать его правильным