当前位置: 首页 > 知识库问答 >
问题:

为TSLint(NestJs)和ESLint(VueJs)设置VS代码linting

濮献
2023-03-14

我将NestJs与Typescript/TSLint一起使用,将VueJs与Javascript/ESLint一起使用。我的VSCode扩展是ESLint、TSLint、Prettier和Vetur。在开发后端时,一切都很好,代码的格式也很好。在使用Vue开发时,我使用airbnb linter配置,但遇到了问题。

假设我有一个vue实例

<script>
export default {
  components: {},
  data() {
    return {
      foo: '',
    };
  },
};
</script>

保存文件后,格式化程序将代码更新为

<script>
export default {
  components: {},
  data() {
    return {
      foo: ""
    };
  }
};
</script>

我无法运行代码,因为linter根据airbnb linter配置抛出错误。虽然它不应该修复代码,因为我已经使用了airbnb样式指南。

我使用设置同步,以便共享整个VSCode设置以进行复制。这些是我的设置

{
    "vetur.validation.template": true,
    "eslint.autoFixOnSave": true,
    // ...
    "javascript.updateImportsOnFileMove.enabled": "always",
    // ...
    "typescript.updateImportsOnFileMove.enabled": "always",
    "prettier.singleQuote": true,
    "prettier.trailingComma": "es5",
    "prettier.useTabs": true,
    "editor.formatOnSave": true,
    // ...
    "vetur.format.defaultFormatter.html": "prettier"
}

你可以在这里看到全部要点

https://gist.github.com/matthiashermsen/9620a315960fa7b9e31bf6cda8583e84

那么,漂亮一点的人在与TSLint和ESLint抗争吗?我想为Typescript和Javascript项目建立一个标准设置。

我还尝试创建一个新的Vue项目,使用prettier作为一个过梁,在那里一切都很好。看来它只是在与airbnb linter配置抗争。

有什么想法吗?谢谢你的帮助!

共有1个答案

温凯
2023-03-14

根据这篇文章,TSLint在2019年被弃用。您必须对typescript使用ESLint。我共享我的配置,你可以使用它或编辑它的某些部分。

tsconfig.json:

{
  "compilerOptions": {
      // Target latest version of ECMAScript.
      "target": "esnext",
      // path to output directory
      "outDir": "./dist",
      // enable strict null checks as a best practice
      "strictNullChecks": true,
      // Search under node_modules for non-relative imports.
      "moduleResolution": "node",
      // Process & infer types from .js files.
      "allowJs": true,
      // Don't emit; allow Babel to transform files.
      "noEmit": true,
      // Enable strictest settings like strictNullChecks & noImplicitAny.
      "strict": true,
      // Import non-ES modules as default imports.
      "esModuleInterop": true,
      // use typescript to transpile jsx to js
      "baseUrl": "./src",
      "module": "esnext",
      "removeComments": true,
      "alwaysStrict": true,
      "allowUnreachableCode": false,
      "noImplicitAny": true,
      "noImplicitThis": true,
      "noUnusedLocals": true,
      "noUnusedParameters": true,
      "noImplicitReturns": true,
      "noFallthroughCasesInSwitch": true,
      "forceConsistentCasingInFileNames": true,
      "importHelpers": true,
      "typeRoots": [
        "src/@types",
        "node_modules/@types"
      ]
  }
}

.eslintrc.js

module.exports = {
    parser: '@typescript-eslint/parser',
    plugins: ['@typescript-eslint'],
    extends: [
        "eslint:recommended",
        "plugin:@typescript-eslint/eslint-recommended",
        "plugin:@typescript-eslint/recommended",
        "plugin:react/recommended",
        "plugin:prettier/recommended",
        "prettier/@typescript-eslint",
    ],
    env: {
        "browser": true,
        "es6": true,
        "node": true
    },
    overrides: [
        {
            "files": ["*.tsx"],
            "rules": {
                "react/prop-types": "off"
            }
        },
        {
            "files": ["*.js"],
            "rules": {
                "@typescript-eslint/no-var-requires": "off"
            }
        }
    ]
}

.prettierrc.js

module.exports =  {
  semi:  true,
  trailingComma:  'all',
  singleQuote:  true,
  printWidth:  120,
  tabWidth:  2,
};
 类似资料:
  • 本节将介绍怎样在一个 TypeScript 项目中使用 ESLint 规范,至于为什么不推荐使用 TSLint,可以看下这篇文章:TypeScript 官方已经决定全面采用 ESLint,ESLint 的 TypeScript 解析器也成为独立项目,专注解决双方兼容性问题。 所以,同开发前端项目一样,熟练掌握 ESLint 规则,也成了 TypeScript 项目开发的必要条件。 1. 慕课解释

  • 我用< code> - template typescript创建了一个新的React本地项目 我删除了目录,它是样板文件的一部分。 然后我继续添加ESLint: 但是,当我打开< code>babel.config.js时,我得到了这个错误 解析错误:“parserOptions.project”已为@typecript-eslint/parser设置。 文件与您的项目配置不匹配:< code

  • 如果安装vuejs eslint插件并将其配置为使用“强烈推荐”规则集,linter将告诉您更改以下代码: 进入这个 问题是,当您这样做时,您的

  • 问题内容: 我正在尝试在我的React项目上使用Airbnb的Javascript标准设置linting,它使用webpack。 根据评论更新了最新软件包。 我的webpack配置中也有一个预加载器设置 并进行了以下设置以运行脚本 我也有一个包含以下内容的文件 这给了我以下错误: 如果删除我认为可能有冲突的文件,则会出现以下错误: 随后出现npm错误,该错误导致任务退出。 任何帮助,将不胜感激!

  • 我遇到了一个非常恼人的问题,某种设置冲突阻止了lint调整文件。我正在使用Wes Bos的ESLint/Prettier配置。例如,我有一个Vue文件: 然而,在我的.eslintrc中,我有这个规则,因为我更喜欢脚本代码缩进一次: 当我保存文件以允许Prettier重新格式化并修复这些错误时,我可以看到逗号悬空和缩进问题在恢复并再次显示所有错误之前的一瞬间得到修复。冲突发生在哪里? ESLint

  • 我指的是通过以下途径创建时:(Ctrl+Shift+P➡新flutter项目)