eslint将我的 *.ts文件作为javascript处理在一个也有vue的项目中

3bygqnnd  于 2023-04-12  发布在  Vue.js
关注(0)|答案(2)|浏览(149)

我正在用typescript和vue做一个web项目。在阅读了typescript-eslinteslint-plugin-vue的文档后,我决定使用以下eslint配置:

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"],
};

我的vue文件被正确解析,但我的ts文件有不合理的lint错误。看起来它们是针对javascript语法的lint。如下图所示:

如果我删除parserOptions并将解析器更改为@typescript-eslint/parser,则ts文件的lint是正确的,但lint for vue文件会中断。
有谁有线索吗?

ldfqzlk8

ldfqzlk81#

在我看来你有两个选择:
1.将parser: "vue-eslint-parser"更改为@typescript-eslint/parser
1.为.ts文件添加覆盖,并将解析器设置为@typescript-eslint/parser

nvbavucw

nvbavucw2#

我想我太累了或者太老了,不管怎样,问题是在同一个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",
  },
//  parserOptions: {
//    ecmaVersion: "latest",
//    sourceType: "module",
//  },
  plugins: ["vue", "@typescript-eslint"],
};

相关问题