如何在Visual Studio 2017中禁用JavaScript构建错误?

162

我刚刚将 Visual Studio 2017 从 RC 更新到正式版。之前我没有遇到以下错误,但最近我却遇到了这个错误。在构建项目时,我遇到了以下错误,它阻止了 web 项目的启动:

Severity    Code    Description Project File    Line    Suppression State
Error   eqeqeq  (ESLint) Expected '===' and instead saw '=='.   VistaBest.Shop.Web  C:\***\Request.js   21

JavaScript Error

如何在Visual Studio 2017中禁用JavaScript构建错误?


28
这不是我的代码问题,我想在我的JavaScript代码中使用“==”而不是“===”。 - Mohammad Dayyan
9
JavaScript错误不应该阻止在Visual Studio中构建MVC项目。 - Mohammad Dayyan
在Visual Studio 2017中,工具>选项中没有“显示语法错误”。 - Mohammad Dayyan
14
@Koby Douek:这不是我的代码问题,我不想在Visual Studio中为JavaScript文件构建错误。 - Mohammad Dayyan
3
我很感兴趣禁用这个特定的错误。=====一样都是有效的比较运算符。对我来说,它并不会阻止我构建代码,只会在我服务器代码中有其他错误时使错误列表变得混乱。 - xr280xr
显示剩余2条评论
7个回答

297
我认为,找到解决方案:
  1. 打开 工具 > 选项
  2. 导航到 文本编辑器 > JavaScript/TypeScript > EsLint(在VS2017 15.8中不是EsLint, 而是Linting
  3. 启用ESLint设置为False

禁用ESlint

Visual Studio >= 15.8.5 禁用ESlint Visual Studio 15.8.5


2
在我的VS2017中可行。 - Rory McCrossan
3
小贴士:截图左上方的文本框可轻松搜索任何设置/选项! - Prashanth Subramanian
6
在15.8.0版本中,情况不完全相同 - 它被隐藏在“Linting>General”下方。搜索“eslint”仍然可以找到它,但标签将为linting。请参见@Brad在下面的回答。 - ahwm
1
这个功能在更新到 VS 2017 15.8.1 后自动开始运行。我不得不手动再次关闭它。 - Piero Alberto
1
谢谢!那真让我恼火。对于版本15.8.5,现在只是一个复选框。 - Sterling Diaz

43

在Visual Studio 2017(v 15.8.0)中:

选项1:选项 > JS错误

  1. 打开 工具 > 选项
  2. 导航到 文本编辑器 > JavaScript/TypeScript > 代码验证
  3. 启用JavaScript错误 设置为 false
  4. 或者,将 启用JavaScript错误 设置为 true 并将 显示错误为警告 设置为 true

我需要重新启动Visual Studio才能使此生效。

Options > JS Errors

选项 2:选项 > 代码检查

下面还有另一个选项,可以让你编辑全局的代码检查设置:

Options > JS Linting

选项三:.eslint文件

您也可以在项目的根目录中创建一个名为.eslintrc的文件。

选项四:ESLint内联命令

请参见@user9153924的答案


资源


16

我尝试了Mohammad的解决方案,但它没有起作用。我通过以下步骤成功了:

  1. 右键单击您的Web .csproj文件
  2. 在第一个 <PropertyGroup> 中添加以下条目: <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

4
我认为你漏掉了几个步骤。你是不是想说右键单击你的 web .csproj,卸载项目,再次右键单击它,然后编辑? - xr280xr

11

在你的JavaScript代码的第一行添加/*eslint eqeqeq: ["error", "smart"]*/以消除错误。

https://eslint.org/docs/rules/eqeqeq

遵循Mohammad的解决方案将关闭ESLint语法检查。这适用于VS2015,并应该适用于更高版本。


完美且不会把婴儿和洗澡水一起扔掉。 - ShrapNull
谢谢!这个好用,但我很确定“error”应该是“off”或者0(零,不带引号)。另外,由于URL的参考,我也使用了package.json文件。 - Stan

4

适用于 Visual Studio 2019。

图片描述

  1. 打开“工具”>“选项”。
  2. 导航到“文本编辑器”>“JavaScript/TypeScript”。
  3. => “Linting”>“常规”。

然后取消勾选 ESLint 复选框。 请参考下图。

图片描述


3

我刚刚不得不更改"eqeqeq"规则的行为,以包括"smart":

编辑在其他答案中提到的用户根文件夹中找到的.eslintrc文件。

通过添加smart规则将更改应用于rules部分。

    "rules": {

    "eqeqeq": [2, "smart"],

从网页文章中复制: 此选项强制使用 === 和 !==,除了以下情况:

  1. 比较两个文字值
  2. 评估 typeof 的值
  3. 与 null 进行比较

我在以下链接找到了具体信息: https://eslint.org/docs/2.0.0/rules/eqeqeq


谢谢!我不得不关闭并重新打开Visual Studio才能使更改生效。此外,添加“smart”参数似乎并没有在所有情况下清除错误,但是完全删除规则就解决了问题。 - zax

0

我尝试了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')" />

希望这也能帮助某人解决问题..!!!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接