首页 > 解决方案 > 保存扩展名为 .jsx 的文件时,eslint-watch 未运行

问题描述

我安装了 eslint-watch https://www.npmjs.com/package/eslint-watch所以每次我点击保存时 eslint 都会运行。但是,每当我保存扩展名为 .jsx 的文件时,linter 就不会运行。我确信这是问题所在,因为 linter 在我将更改保存到非 jsx 文件后确实会运行,并且如果我将 .jsx 文件扩展名更改为 .js,它会起作用。

我真的很感激任何帮助。以下是相关文件。

package.json 脚本(目录路径正确)

"lint": "esw webpack.config.* babel.config.* src/**/*.js src/**/*.jsx server/**/*.js --color",
"lint:watch": "npm run lint -- --watch",

package.json 依赖项(package-lock.json 中的相同版本)

"eslint": "^6.2.1",
"eslint-watch": "^6.0.0",
"eslint-plugin-react": "^7.14.3",

.eslintrc.js(在根目录中)

module.exports = {
  "root": true,
  "env": {
        "browser": true,
        "node": true,
        "es6": true
    },
    "extends": ["eslint:recommended", "plugin:react/recommended"],
    "globals": {
        "Atomics": "readonly",
        "SharedArrayBuffer": "readonly"
    },
    "plugins": [
      "react"
    ],
    "parserOptions": {
        "ecmaVersion": 2018,
        "sourceType": "module",
        "ecmaFeatures": {
          "jsx": true
        }
    },
    "rules": {
    },
    "settings": {
      "react": {
        "version": "detect"
      }
    }
}

标签: reactjseslint

解决方案


我认为您所要做的就是添加--ext .jsx标志。这将告诉 eslint 在运行时查找 jsx 扩展。即使在你的配置中你已经告诉它解析 jsx 文件并且你已经传递了 jsx 的 glob 模式,eslint 并不知道它需要查找或解析.jsx文件。

如果这不能解决您的问题,请在repo 的 github 页面上创建一张票,我可以提供进一步的帮助。


推荐阅读