eslint –如何知道“定义”规则的位置

问题描述

给出一个带有其节点的package.json安装eslint和一些插件的项目,我怎么知道在哪里设置特定规则?

我看到一个正在应用的规则(space-before-function-paren,但是在项目的任何.eslintrc文件插件的文档中都找不到它。

此外,我正在使用VSCode进行某些扩展,例如ESLint本身,这可能在这里造成干扰,但是我不确定如何/在哪里检查哪个部分应用了该规则(尽管我认为这不太可能发生,因为如果代码违反上述规则,npm run lint就会失败。

我正在发布package.json文件的相关部分:

{
  // ...
  "scripts": {
    "watch": "NODE_ENV=development node build/build.js --watch","build": "NODE_ENV=development node build/build.js","build:prod": "NODE_ENV=production node build/build.js","unit": "NODE_ENV=test jest --config test/unit/jest.conf.js --coverage","test": "npm run unit","lint": "eslint --ext .js,.vue src test/unit/specs","ci-lint": "eslint --ext .js,.vue src test/unit/specs --format checkstyle --output-file lint_out/unit_timeline.xml"
  },"devDependencies": {
    "@vue/test-utils": "^1.0.0-beta.27","autoprefixer": "^8.2.0","babel-core": "^6.26.0","babel-eslint": "^8.2.2","babel-jest": "^22.4.3","babel-loader": "^7.1.4","babel-plugin-dynamic-import-node": "^2.2.0","babel-plugin-transform-es2015-modules-commonjs": "^6.26.2","babel-plugin-transform-runtime": "^6.23.0","babel-preset-env": "^1.7.0","babel-preset-stage-2": "^6.24.1","chalk": "^2.3.2","copy-webpack-plugin": "^4.5.1","css-loader": "^0.28.11","cssnano": "^3.10.0","eslint": "^5.10.0","eslint-config-standard": "^12.0.0","eslint-friendly-formatter": "^4.0.1","eslint-loader": "^2.1.1","eslint-plugin-import": "^2.14.0","eslint-plugin-node": "^8.0.0","eslint-plugin-promise": "^4.0.1","eslint-plugin-standard": "^4.0.0","eslint-plugin-vue": "^5.0.0","extract-text-webpack-plugin": "^3.0.2","file-loader": "^1.1.11","friendly-errors-webpack-plugin": "^1.6.1","html-webpack-plugin": "^3.1.0","jest": "^22.4.3","jest-junit": "^3.6.0","jest-serializer-vue": "^1.0.0","node-notifier": "^5.2.1","optimize-css-assets-webpack-plugin": "^3.2.0","ora": "^2.0.0","portfinder": "^1.0.13","postcss-import": "^11.1.0","postcss-loader": "^2.1.3","postcss-url": "^7.3.1","rimraf": "^2.6.2","sass-loader": "^6.0.7","semver": "^5.5.0","shelljs": "^0.8.1","uglifyjs-webpack-plugin": "^1.2.4","url-loader": "^1.0.1","vue-jest": "^2.3.0","vue-loader": "^14.2.2","vue-style-loader": "^4.1.0","vue-template-compiler": "^2.5.21","webpack": "^3.11.0","webpack-bundle-analyzer": "^2.11.1","webpack-file-list-plugin": "0.0.6","webpack-merge": "^4.1.2","yargs": "^11.0.0"
  }
  // ...
}

解决方法

不幸的是,似乎没有“护送”的方式来执行这样的报告。

如果使用调试选项运行eslint,则会获得许多有关程序运行方式的信息:正在处理的文件,使用的配置,运行失败的方式等等,但不是从哪里获取 遵守了规则。

我设法通过简单地在grep + find目录中运行node_modules来找到它,并通过简单地更改规则并随后查看eslint的结果来确定哪个模块在提供规则。