eslint 将我的 *.ts 文件视为也有 vue 的项目中的 javascript
P粉739706089
P粉739706089 2023-09-02 19:59:50
0
2
474
<p>我正在使用 typescript 和 vue 开发一个网络项目。在阅读了 typescript-eslint 和 eslint-plugin-vue 的文档后,我已经解决了以下 eslint 配置:</p> <pre class="brush:php;toolbar:false;">module.exports = { root: true, env: { browser: true, es2021: true, }, extends: [ "eslint:recommended", "plugin:vue/vue3-essential", "plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended-requiring-type-checking", "prettier", ], parser: "vue-eslint-parser", parserOptions: { parser: "@typescript-eslint/parser", project: ["./tsconfig.json"], tsconfigRootDir: __dirname, extraFileExtensions: [".vue"], }, overrides: [], parserOptions: { ecmaVersion: "latest", sourceType: "module", }, plugins: ["vue", "@typescript-eslint"], };</pre> <p>我的 vue 文件解析正确,但我的 ts 文件有不合理的 lint 错误。看来它们是针对 javascript 语法进行检查的。如下图所示:</p> <p>如果我删除 <code>parserOptions</code> 并将解析器更改为 <code>@typescript-eslint/parser</code>,ts 文件会正确 lint,但 vue 文件的 lint 会中断。</p > <p>有人知道吗?</p>
P粉739706089
P粉739706089

全部回复(2)
P粉236743689

据我所知,您有两个选择:

  1. 解析器:“vue-eslint-parser”更改为@typescript-eslint/parser

  2. 为 .ts 文件添加覆盖,并将解析器设置为 @typescript-eslint/parser

P粉038856725

我想我太累了或者太老了,无论如何,问题在于同一个 lint 文件中有两个 parserOptions 部分。这是最终的工作版本:

module.exports = {
  root: true,
  env: {
    browser: true,
    es2021: true,
  },
  extends: [
    "eslint:recommended",
    "plugin:vue/vue3-essential",
    "plugin:@typescript-eslint/recommended",
    "plugin:@typescript-eslint/recommended-requiring-type-checking",
    "prettier",
  ],
  parser: "vue-eslint-parser",
  parserOptions: {
    parser: "@typescript-eslint/parser",
    project: ["./tsconfig.json"],
    ecmaVersion: "latest",
    sourceType: "module",
    extraFileExtensions: [".vue"],
  },
//  parserOptions: {
//    ecmaVersion: "latest",
//    sourceType: "module",
//  },
  plugins: ["vue", "@typescript-eslint"],
};
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板