我刚刚将 Visual Studio 2017 从 RC 更新到 final。我没有收到以下错误,但最近我收到了此错误。在构建项目时,我收到以下错误,它会阻止 Web 项目启动:
Severity Code Description Project File Line Suppression State
Error eqeqeq (ESLint) Expected '===' and instead saw '=='. VistaBest.Shop.Web C:\***\Request.js 21
https://i.stack.imgur.com/y7KLd.png
如何在 Visual Studio 2017 中禁用 JavaScript 构建错误?
==
与 '===' 一样是有效的比较运算符。对我来说,它不会阻止我构建,它只会在我的服务器代码中出现另一个错误时弄乱错误列表。
我想,找到解决方案:
打开工具 > 选项导航到文本编辑器 > JavaScript/TypeScript > EsLint(在 VS2017 15.8 中它是 Linting 而不是 EsLint)将 Enable ESLint 设置为 False
https://i.stack.imgur.com/hoH70.png
https://i.stack.imgur.com/qOxtH.jpg
在 Visual Studio 2017 (v 15.8.0) 中:
选项 1:选项 > JS 错误
打开工具 > 选项导航到文本编辑器 > JavaScript/TypeScript > 代码验证将启用 JavaScript 错误设置为 false,或者将启用 JavaScript 错误设置为 true 并将错误显示为警告设置为 true
我需要重新启动 Visual Studio 才能使其生效。
https://i.stack.imgur.com/4NJh0.png
选项 2:选项 > Linting
下面还有另一个选项可让您编辑全局 linting 设置:
https://i.stack.imgur.com/okATP.png
选项 3:.eslint 文件
您还可以在项目的根目录中创建一个名为 .eslintrc
的文件。
选项 4:文件中的 ESLint 命令
资源
ESLint 文件语法
ESLint 规则
我尝试了 Mohammad 的解决方案,但没有奏效。我设法做到以下几点:
右键单击您的 web .csproj 文件在第一个
将 /*eslint eqeqeq: ["error", "smart"]*/
添加到 Javascript 代码的第一行以消除错误。 https://eslint.org/docs/rules/eqeqeq
遵循 Mohammad 的解决方案将关闭 ESLint 以进行语法检查。这适用于 VS2015,应该适用于更高版本。
对于 Visual Studio 2019。
https://i.stack.imgur.com/Bvfoo.jpg
打开工具 > 选项导航到文本编辑器 > JavaScript/TypeScript => Linting > 常规。
然后取消选中 ESLint 复选框。请参考下面的图片。
https://i.stack.imgur.com/N85Lr.jpg
我只需要更改“eqeqeq”规则行为以包含“smart”:
编辑在其他答案中提到的用户根文件夹中找到的 .eslintrc 文件。
通过添加智能规则对规则部分进行更改
"rules": {
"eqeqeq": [2, "smart"],
复制自网络文章:此选项强制使用 === 和 !==,但以下情况除外:
比较两个文字值 评估 typeof 的值 比较 null
我在以下位置找到了详细信息:https://eslint.org/docs/2.0.0/rules/eqeqeq
我尝试了 Mohammad 的解决方案,但没有运气,我按照 Rafeel 的回答而不是添加他建议的代码示例,而是从 web .csproj
中删除了下面的代码,最后我能够构建和运行我的项目。在同一个文件中有两个地方应该删除它。不过,我不知道删除的代码将如何影响我的解决方案。
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props" Condition="Exists('$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\TypeScript\Microsoft.TypeScript.Default.props')" />
希望这也能帮助某人拯救这一天..!!!
Linting>General
下搜索eslint
仍会显示它,但它会被标记为 linting。请参阅下面的@Brad 答案。