如何解决ESLint 在 Visual Studio 2017 或 2019 中不起作用
我正在尝试使用 ESLint 来整理我的 React SPA Asp.net Core 项目中的打字稿文件。
我发现 VS 使用自己的 ESLint 和 TS 设置。它不会关心我的任何本地配置文件,包括 React App 根文件夹中的 .eslintrc 或 tsconfig.json。
对于 ESLint,我可以在那里启用 ESlint,但全局配置文件不起作用。
对于 TS,我在项目属性中的设置和打字稿构建中发现了一些格式。
有趣的部分是,虽然我为 Visual Studio(4.3.2) 安装了最新的 Typescript,但 ECMAScript 版本中缺少 ESNEXT。因此我得到了很多错误:
我已阅读这篇文章 ESLint support Visual Studio 2017。它很旧(2018 年),但它说 VS 中嵌入的 ESLintversion 很旧,VS 不会使用我安装的 ESLint。
那么我的问题是,如何摆脱所有错误(包括我认为由错误的 ES 版本目标版本产生的错误)并使 ESLint 运行得与 VS 一样好?
顺便说一句,我使用的是 2019 v16 和 2017 >= v15.8。
非常感谢大家的关注。我在这个问题上浪费了很多次。
解决方法
我仍然无法使用 ESLint,但现在我消除了所有 TS 错误。
我通过删除 .csproj 中的以下 PropertyGroup 解决了 TS 错误:
删除后,我在项目属性中构建的打字稿如下所示:
现在 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,但是含糊不清
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。