【问题标题】:How can I make eslint detect rule violations in JSON files?如何让 eslint 检测 JSON 文件中的规则违规?
【发布时间】:2019-07-09 15:52:25
【问题描述】:

下面是我的 .eslintrc 文件,其中包含需要应用于 .json 文件的规则。

{
  "extends": "eslint:recommended",
  "parser": "babel-eslint",
  "env": {
    "browser": true,
    "node": true,
    "jquery": true,
    "jasmine": true
  },
  "plugins": [
    "json"
  ],
  "rules": {
    "camelcase": 2
  }

除了 .json 文件之外,该规则实际上适用于项目中的任何地方。

我曾尝试使用“eslint-plugin-json”和其他几个模块,但它们根本不起作用。

请不要给出“改用jsonlint等”的解决方案,项目中linting的模块是eslint。

【问题讨论】:

    标签: javascript coding-style eslint lint


    【解决方案1】:

    如果我理解正确,JSON 文件在大多数情况下都没有有效的 JavaScript 语法:外部大括号 {} 被解析为带有语句的块,解析错误 Unexpected token : 发生在第一个 key: value 对上。所以我不确定这是否可以通过 ESLint 实现(ESLint 根据定义检查 JavaScript)。

    不过,您可以尝试echo "(`cat test.json`)" | eslint --stdin 之类的方法。

    但是,camelcase 尤其不能在这里应用:ESlint 似乎忽略了带引号的键,并且您不能在 JSON 中使用不带引号的键。

    【讨论】:

    • 我认为 eslint 正在检查的规则也可以应用于 json,甚至可以使用很少的功能增强器,比如插件。至少有一些规则。
    • 我在答案中添加了一个不那么简单的选项。
    • 不确定它是否有帮助,但无论如何都是 spasibo 的信息 :)
    【解决方案2】:

    我做了 eslint-plugin-json 的替代品,因为它对我不起作用并且没有自动修复功能 - eslint-plugin-json-format

    它还会(可选地)为你排序你的 package.json

    eslint --ext .json,.js . --fix
    

    【讨论】:

      猜你喜欢
      • 2020-11-04
      • 1970-01-01
      • 2023-02-05
      • 2018-04-23
      • 2021-06-02
      • 2017-07-04
      • 2021-04-05
      • 2023-01-05
      • 2017-12-09
      相关资源
      最近更新 更多