ESLint 在 Visual Studio 2017 或 2019 中不起作用

问题描述

我正在尝试使用 ESLint 来整理我的 React SPA Asp.net Core 项目中的打字稿文件

我发现 VS 使用自己的 ESLint 和 TS 设置。它不会关心我的任何本地配置文件包括 React App 根文件夹中的 .eslintrc 或 tsconfig.json。

对于 ESLint,我可以在那里启用 ESlint,但全局配置文件不起作用。

ESLint Setting

对于 TS,我在项目属性中的设置和打字稿构建中发现了一些格式。

TS Formatting Setting

Properties

有趣的部分是,虽然我为 Visual Studio(4.3.2) 安装了最新的 Typescript,但 ECMAScript 版本中缺少 ESNEXT。因此我得到了很多错误

Missing ECMAScript Version

Error

我已阅读这篇文章 ESLint support Visual Studio 2017。它很旧(2018 年),但它说 VS 中嵌入的 ESLintversion 很旧,VS 不会使用我安装的 ESLint。

那么我的问题是,如何摆脱所有错误包括我认为由错误的 ES 版本目标版本产生的错误)并使 ESLint 运行得与 VS 一样好?

顺便说一句,我使用的是 2019 v16 和 2017 >= v15.8。

非常感谢大家的关注。我在这个问题上浪费了很多次。

解决方法

我仍然无法使用 ESLint,但现在我消除了所有 TS 错误。

我通过删除 .csproj 中的以下 PropertyGroup 解决了 TS 错误:

PropertyGroup to Delete

删除后,我在项目属性中构建的打字稿如下所示:

Typescript build in project properties

现在 VS 终于检测到我的 tsconfig.json 并因此编译良好。

这个Post也帮助了我。

,

是的,VS 2019 (16.10.0) 好像没有考虑全局 %USERPROFILE%\.eslintrc(至少,它不尊重 parserOptions.ecmaVersion 和 parserOptions.sourceType),可能是因为冲突本地 (4.3.2) 和 %LOCALAPPDATA%\Microsoft\TypeScript\ESLint (3.7.4) 文件夹中的打字稿版本。

我使用简单的配置在项目根目录中创建了一个本地 .eslintrc.json 文件,id 帮我解决了这个问题:

{
    "parserOptions": {
        "ecmaVersion": 6,"sourceType": "module"
    },"env": {
        "es6": true
    }
}

本地 package.json 中没有提到 eslint,node_modules 中没有本地 eslint! VS 使用其全局 ESLint 模块及其默认配置。 请注意,如果您尝试更新其中的模块版本,VS 会将其 ESLint\package.json 重置为初始值!

附注。如果在本地 .eslintrc 文件中指定了 parserOptions.project,则此方法不起作用:eslint 无法再次理解 ECMA2015 模块导入,尽管有 tsconfig 模块和目标选项

PPS。 ESLint 不处理 .tsx 以外的文件?还是.jsx?当在 VS IDE(例如 .vue)下运行时,我还没有发现 VS 究竟是如何运行 eslint 并将参数传递给它的。明明使用了typescriptlinting.all.js,但是含糊不清

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...