首页 > 解决方案 > typescript 编译 js 文件 eslint 配置

问题描述

我实现了根据 airbnb 和 typescript 配置配置一个 VS 代码项目,最后 typecruipt 代码 linting 的行为符合预期。

找到 .eslintrc.js:

const path = require('path');
module.exports = {
  root: true,
  env: {
    browser: true,
    jquery: true
  },
  extends: [
    'airbnb/base',
    'plugin:@typescript-eslint/recommended',
  ],
  parserOptions: {
    parser: 'parser: '@typescript-eslint/parser',
    ecmaVersion: 2018,
    sourceType: 'module',
  },
  settings: {
    'import/resolver': {
      alias: {
        map: [
          ['@', path.resolve(__dirname, 'src')],
        ],
        extensions: [
          '.js', '.js', '.json',
        ],
      },
    },
  },
  rules: {
    'comma-dangle': ['error', {
      'arrays': 'always-multiline',
      'objects': 'always-multiline',
      'imports': 'always-multiline',
      'exports': 'always-multiline',
      'functions': 'never'
    }],
    'function-paren-newline': ['error', 'consistent'],
    'no-alert': 0,
    'no-bitwise': 0,
    'no-console': 0,
    'no-param-reassign': 0,
    'no-shadow': 0,
    'jsx-a11y/anchor-is-valid': 0,
    'jsx-a11y/click-events-have-key-events': 0,
    'jsx-a11y/label-has-associated-control': 0,
    'jsx-a11y/label-has-for': 0,
    'jsx-a11y/no-autofocus': 0,
    'jsx-a11y/no-noninteractive-element-interactions': 0,
    'jsx-a11y/no-static-element-interactions': 0,
    'linebreak-style': [0, "windows"],
    'camelcase' : 0,
    'no-plusplus' : 0,
    'no-underscore-dangle' : 0,
    'no-buffer-constructor:': 0
  },
};

但是,es-lint 也适用于我不想要的 typescript 编译的 .js 文件。我尝试使用 tsc 编译器和更漂亮的插件来根据我认为最理想的 airbnn 规则编译这些。另一种选择是为 js 文件禁用 eslint。我已经检查了许多关于如何配置项目以使用我已经实现的打字稿的文章,但是我错过了关于 linting 以及如何配置的 .js 编译文件发生的最后一步。当您在项目中处理多个文件时,如何一次编译多个文件。

除了我的具体疑问之外,欢迎对打字稿工作流程提出任何意见。我猜你编译了所有的 tsc 文件并将相应的 tsc 编译的 .js 文件设置为你的应用程序入口点,但我不确定它是否是这样的。

提前谢谢了。

标签: typescriptvisual-studio-codeconfiguration

解决方案


你可以配置 eslint 忽略某些文件或目录

如果你的应用程序被编译到一个build目录中,你的 eslint 中可能会有这个:

"ignorePatterns": ["build"]

或者,如果您想忽略所有.js文件,无论它们编译到何处:

"ignorePatterns": ["**/*.js"]

或者在文件中使用类似的模式。.eslintignore


推荐阅读