วิธีปิดการใช้งานข้อผิดพลาดในการสร้าง JavaScript ใน Visual Studio 2017


161

ฉันเพิ่งอัปเดต Visual Studio 2017 จาก RC เป็นเวอร์ชั่นสุดท้าย ฉันไม่ได้รับข้อผิดพลาดต่อไปนี้ แต่เมื่อเร็ว ๆ นี้ฉันได้รับข้อผิดพลาดนี้ ในการสร้างโครงการฉันได้รับข้อผิดพลาดต่อไปนี้และป้องกันไม่ให้โครงการเว็บเริ่มต้น:

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

ข้อผิดพลาดของ JavaScript

ฉันจะปิดใช้งานข้อผิดพลาดในการสร้าง JavaScript ใน Visual Studio 2017 ได้อย่างไร


27
มันไม่ใช่ปัญหารหัสของฉันฉันต้องการใช้ '==' แทน '===' ในรหัส JavaScript ของฉัน
Mohammad Dayyan

9
ข้อผิดพลาดของ JavaScript ไม่ควรป้องกันการสร้างโครงการ MVC ใน Visual Studio
Mohammad Dayyan

แชร์รหัสของคุณหรือปิดใช้งานข้อความแสดงข้อผิดพลาด javascript - อ่านสิ่งนี้: stackoverflow.com/questions/2125455/…
Koby Douek

13
@Koby Douek: มันไม่ใช่ปัญหารหัสของฉันฉันไม่ต้องการที่จะสร้างข้อผิดพลาดสำหรับไฟล์ JavaScript ใน Visual Studio
Mohammad Dayyan

3
ฉันจะสนใจปิดการใช้งานข้อผิดพลาดเฉพาะนี้เป็นพิเศษ ==เป็นตัวดำเนินการเปรียบเทียบที่ถูกต้องเช่นเดียวกับ '===' สำหรับฉันมันไม่ได้ป้องกันฉันจากการสร้างมันเพียงแค่ตัดรายการข้อผิดพลาดขึ้นมาเมื่อฉันมีข้อผิดพลาดอื่นในรหัสเซิร์ฟเวอร์ของฉัน
xr280xr

คำตอบ:


298

ฉันคิดว่าหาวิธีแก้ปัญหา:

  1. เปิด Tools > Options
  2. นำทางไปยังText Editor > JavaScript/TypeScript > EsLint(ใน VS2017 15.8 Lintingไม่ใช่EsLint)
  3. ตั้งค่าEnable 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จะยังคงนำมาใช้ แต่มันจะมีป้ายกำกับว่าเป็นขุย ดูคำตอบของ @ Brad ด้านล่าง
ahwm

1
คุณลักษณะนี้เริ่มทำงานโดยอัตโนมัติหลังจากอัปเดตเป็น VS 2017 15.8.1 ฉันต้องปิดตัวเองอีกครั้ง
Piero Alberto

1
ขอบคุณ! นั่นทำให้ฉันโกรธ สำหรับเวอร์ชั่น 15.8.5 เป็นเพียงช่องทำเครื่องหมายตอนนี้
Sterling Diaz

39

ใน Visual Studio 2017 (เวอร์ชัน 15.8.0):

ตัวเลือก 1: ตัวเลือก> ข้อผิดพลาด JS

  1. เปิด Tools > Options
  2. นำทางไปยัง Text Editor > JavaScript/TypeScript > Code Validation
  3. ตั้งค่าEnable JavaScript errorsเป็นfalse
  4. หรือการตั้งค่าEnable JavaScript errorsการtrueและShow errors as warningsการtrue

ฉันต้องรีสตาร์ท Visual Studio เพื่อให้สิ่งนี้มีผล

ตัวเลือก> ข้อผิดพลาด JS

ตัวเลือกที่ 2: ตัวเลือก> ผ้าสำลี

มีตัวเลือกอื่นด้านล่างซึ่งจะช่วยให้คุณแก้ไขการตั้งค่าการเย็บทั่วโลก

ตัวเลือก> JS Linting

ตัวเลือก 3: ไฟล์. eslint

คุณยังสามารถสร้างไฟล์ที่ชื่อ.eslintrcในรูทของโปรเจ็กต์ของคุณ

ตัวเลือก 4: คำสั่ง ESLint ในไฟล์

ดูคำตอบของ @ user9153924


ทรัพยากร


15

ฉันลองใช้วิธีของ Mohammad แต่มันไม่ได้ผล ฉันพยายามที่จะทำงานต่อไปนี้:

  1. คลิกขวาที่ไฟล์. csproj ของเว็บ
  2. ในรายการแรกให้<PropertyGroup>เพิ่มรายการต่อไปนี้: <TypeScriptCompileBlocked>true</TypeScriptCompileBlocked>

4
ฉันคิดว่าคุณพลาดไม่กี่ก้าวไปที่นั่น คุณหมายถึงคลิกขวาที่เว็บ. csproj ของคุณยกเลิกการโหลดโครงการคลิกขวาอีกครั้งแก้ไขหรือไม่
xr280xr

11

เพิ่ม/*eslint eqeqeq: ["error", "smart"]*/ในบรรทัดแรกของรหัส Javascript ของคุณเพื่อลบข้อผิดพลาด https://eslint.org/docs/rules/eqeqeq

การติดตามโซลูชันของ Mohammad จะปิด ESLint เพื่อตรวจสอบไวยากรณ์ สิ่งนี้ใช้ได้ใน VS2015 และควรทำงานในรุ่นที่ใหม่กว่า


สมบูรณ์แบบ & ไม่ทิ้งลูกน้อยไปกับอ่างอาบน้ำ
ShrapNull

ขอบคุณ! สิ่งนี้ใช้งานได้ แต่ฉันค่อนข้างแน่ใจว่า "ผิดพลาด" ควรเป็น "ปิด" หรือ 0 (ศูนย์ไม่มีเครื่องหมายคำพูด) ฉันยังมีไฟล์ package.json ให้ใช้งานได้ด้วยการอ้างอิง URL
สแตน

4

สำหรับ Visual Studio 2019

ป้อนคำอธิบายรูปภาพที่นี่

  1. เปิดเครื่องมือ> ตัวเลือก
  2. ไปที่ Text Editor> JavaScript / TypeScript
  3. => ผ้าสำลี> ทั่วไป

จากนั้นไม่เลือกช่องทำเครื่องหมาย ESLint กรุณารูปภาพร้องสำหรับการอ้างอิง

ป้อนคำอธิบายรูปภาพที่นี่


3

ฉันแค่ต้องเปลี่ยนพฤติกรรมของกฎ"eqeqeq"เพื่อรวม "smart":

แก้ไขไฟล์. eslintrc ที่พบในโฟลเดอร์รูทผู้ใช้ของคุณที่กล่าวถึงในคำตอบอื่น ๆ แล้ว

การเปลี่ยนแปลงเกิดขึ้นในส่วนของกฎโดยการเพิ่มกฎสมาร์ท

    "rules": {

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

คัดลอกจากบทความบนเว็บ: ตัวเลือกนี้บังคับใช้ === และ! == ยกเว้นกรณีเหล่านี้:

  1. การเปรียบเทียบค่าสองตัวอักษร
  2. การประเมินค่าของ typeof
  3. เปรียบเทียบกับ null

ฉันพบข้อมูลเฉพาะที่: https://eslint.org/docs/2.0.0/rules/eqeqeq


ขอบคุณ! ฉันต้องปิดและเปิด Visual Studio ใหม่เพื่อให้การเปลี่ยนแปลงมีผล นอกจากนี้การเพิ่มในพารามิเตอร์ "สมาร์ท" ดูเหมือนจะไม่ได้ล้างข้อผิดพลาดในทุกกรณี
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')" />

หวังว่านี่จะช่วยให้ใครบางคนประหยัดทั้งวัน .. !!!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.