typescript编译的js文件eslint配置
typescript compiled js files eslint configuration
我实现了根据 airbnb 和 typescript config 配置 VS code 项目,最终 typescruipt 代码 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 编译器和 prettier 插件根据我认为最理想的 airbnn 规则编译这些文件。另一种选择是禁用 js 文件的 eslint。我已经检查了很多关于如何配置一个项目以使用我已经实现的打字稿的文章,但是我错过了关于 .js 编译文件发生的最后一步关于 linting 以及如何配置它的内容。还有当你在一个项目中处理多个文件时如何一次编译多个文件。
除了我的具体疑问,任何关于打字稿工作流程的评论都值得赞赏。我猜你编译了所有的 tsc 文件并将相应的 tsc 编译的 .js 文件设置为你的应用程序入口点,但我不确定它是否那样。
非常感谢。
你可以configure eslint to ignore certain files or directories
如果您的应用程序被编译到 build
目录,您的 eslint 中可能有:
"ignorePatterns": ["build"]
或者如果您想忽略所有 .js
文件,无论它们被编译到哪里:
"ignorePatterns": ["**/*.js"]
中使用类似的模式
我实现了根据 airbnb 和 typescript config 配置 VS code 项目,最终 typescruipt 代码 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 编译器和 prettier 插件根据我认为最理想的 airbnn 规则编译这些文件。另一种选择是禁用 js 文件的 eslint。我已经检查了很多关于如何配置一个项目以使用我已经实现的打字稿的文章,但是我错过了关于 .js 编译文件发生的最后一步关于 linting 以及如何配置它的内容。还有当你在一个项目中处理多个文件时如何一次编译多个文件。
除了我的具体疑问,任何关于打字稿工作流程的评论都值得赞赏。我猜你编译了所有的 tsc 文件并将相应的 tsc 编译的 .js 文件设置为你的应用程序入口点,但我不确定它是否那样。
非常感谢。
你可以configure eslint to ignore certain files or directories
如果您的应用程序被编译到 build
目录,您的 eslint 中可能有:
"ignorePatterns": ["build"]
或者如果您想忽略所有 .js
文件,无论它们被编译到哪里:
"ignorePatterns": ["**/*.js"]
中使用类似的模式