无法在Atom编辑器中运行eslint

关于如何让ESLint使用Atom进行安装和function,我完全迷失了。 所以我打算一步一步地发布,如果有人能帮助我们做到这一点,那将是非常棒的。

  • primefaces:1.19.5
  • Atom,linter 2.2.0
  • Atom,linter-eslint 8.2.1

我已经卸载并重新安装了Atom插件,并禁用了除Core和2 linters之外的所有其他插件。

  • 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 

这些是我为了让我的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获得某种types结果的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开发人员控制台中没有出现错误。 但是在Atom编辑器中Linter也没有什么事情发生。 我可以input乱码,没有任何反应。

运行debugging

  • DEBUG=eslint:* eslint .

debugging结果:

 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错误#465
  • 更新.eslintrc.json"extends": "eslint-config-airbnb",

现在再次没有发生,再次运行debugging

  • DEBUG=eslint:* eslint .

依然找不到该模块

  • 尝试使用eslintconfigurationAtom编辑器的build议

在这一点上,我仍然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 . 并可以得到一些结果。 然而,Atom并没有运行。

结果:

 /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。

没有深入研究这个问题,find具体的失败点,我决定重新开始。

  • 删除全局节点模块
  • 删除所有非核心Atom插件和主题
  • 卸载Atom
  • 重新安装Atom
  • 只安装ESLint和支持decencies

这样做,我能够没有问题地运行ESLint。 我的所有假设都是在插件或主题中出现冲突。 从那里安装我的核心工具插件是成功的。