การปิดกฎ eslint สำหรับบรรทัดที่ระบุ


1346

เพื่อปิดกฏ linting สำหรับบรรทัดเฉพาะใน JSHint เราใช้กฎต่อไปนี้:

/* jshint ignore:start*/
$scope.someVar = ConstructorFunction();
/* jshint ignore:end */

ฉันพยายามค้นหาสิ่งที่เทียบเท่ากับข้างต้นสำหรับ eslint


86
ใช้eslint-disable-next-line:
Brylie Christopher Oxley

เริ่มต้นด้วย ESLint v7 คุณสามารถระบุเหตุผลในการปิดการใช้งานกฎที่กำหนดในความคิดเห็นเดียวกัน
Dan Dascalescu

คำตอบ:


2154

คุณสามารถใช้ไวยากรณ์บรรทัดเดียวได้แล้ว:

var thing = new Thing(); // eslint-disable-line no-use-before-define
thing.sayHello();

function Thing() {

     this.sayHello = function() { console.log("hello"); };

}

หรือถ้าคุณไม่ต้องการมีความคิดเห็นในบรรทัดเดียวกันกับรหัสจริงก็เป็นไปได้ที่จะปิดการใช้งานบรรทัดถัดไป:

// eslint-disable-next-line no-use-before-define
var thing = new Thing();

ลิงก์เอกสารที่ร้องขอ: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


4
ตอนนี้ฉันได้รับปัญหา eslint อีกครั้ง: เตือนความคิดเห็นที่ไม่คาดคิดแบบอินไลน์พร้อมกับรหัส no-inline-comments :(
arcseldon

52
ใช้งานได้ดีสำหรับฉัน นอกจากนี้หากคุณไม่สนใจความเฉพาะเจาะจงคุณสามารถทำได้//eslint-disable-lineและมันจะปิดการใช้งานกฎทั้งหมดสำหรับบรรทัดที่กำหนด
KhalilRavanna

7
ด้วยเหตุผลบางอย่างมันไม่ได้ผลสำหรับฉัน ฉันใช้ eslint 3.8.0 ฉันต้องใช้ / * eslint-disable * / และ / * eslint-enable * / ความคิดใด ๆ ว่าทำไมถึงเป็นเช่นนั้น? ฉันชอบวิธีการแบบบรรทัดเดียว
SomethingOn

8
@SomethingOn มีปัญหาเดียวกันเปิดออกผมได้--no-inline-configเปิดอยู่ที่Prevent comments from changing config or rules
tibalt

4
ไม่ทำงานกับ "gulp-eslint": "^ 3.0.1" ฉันต้องใช้ / * eslint-disable * /
olefrank

528

คุณสามารถใช้สิ่งต่อไปนี้

/*eslint-disable */

//suppress all warnings between comments
alert('foo');

/*eslint-enable */

ซึ่งถูกฝังอยู่ในส่วน "การกำหนดค่ากฎ" ของเล็กน้อยเอกสาร ;

หากต้องการปิดการเตือนสำหรับไฟล์ทั้งหมดคุณสามารถใส่ความคิดเห็นที่ด้านบนของไฟล์เช่น

/*eslint eqeqeq:0*/

ปรับปรุง

ESlint ขณะนี้ได้รับการปรับปรุงด้วยวิธีที่ดีกว่าปิดการใช้งานบรรทัดเดียวดู @ goofballLogic ของคำตอบที่ดี


5
BTW ดูเหมือนว่า//ไวยากรณ์ความคิดเห็นใช้งานไม่ได้ ...
MonsieurDart

นอกจากนี้ยังมีข้อความด้านข้างฉันกำลังมองหาปิดการใช้งาน eslint สำหรับหนึ่งบรรทัดใน html งานนี้: thumbsup:
Adil H. Raza

222

นอกจากนี้คุณยังสามารถปิดการใช้งานกฎ / กฎที่เฉพาะเจาะจง (แทนทั้งหมด) โดยการระบุในการเปิดใช้งาน (เปิด) และปิดการใช้งาน (ปิด) บล็อก:

/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert */

ผ่านลิงก์ของ @ goofballMagic ด้านบน: http://eslint.org/docs/user-guide/configuring.html#configuring-rules


6
ให้แน่ใจว่าความคิดเห็น eslint ของคุณผ่าน eslint! -> Expected exception block, space or tab after '/*' in comment.:)
Rimian

ฉันใช้การรวมกันของprettierและeslintเพื่อจัดรูปแบบรหัสของฉัน สิ่งนี้ไม่อนุญาตสำหรับความคิดเห็นแบบอินไลน์ /* eslint-disable-next-line ... */ข้อความมากมายที่อ่านยากและสามารถระบุได้ในโค้ด
Bernhard Döbler

78

จากการกำหนดค่า ESLint - การปิดใช้งานกฎด้วยความคิดเห็นแบบอินไลน์ :

/* eslint-disable no-alert, no-console */


/* eslint-disable */

alert('foo');

/* eslint-enable */


/* eslint-disable no-alert, no-console */

alert('foo');
console.log('bar');

/* eslint-enable no-alert, no-console */


/* eslint-disable */

alert('foo');


/* eslint-disable no-alert */

alert('foo');


alert('foo'); // eslint-disable-line

// eslint-disable-next-line
alert('foo');


alert('foo'); // eslint-disable-line no-alert

// eslint-disable-next-line no-alert
alert('foo');


alert('foo'); // eslint-disable-line no-alert, quotes, semi

// eslint-disable-next-line no-alert, quotes, semi
alert('foo');


foo(); // eslint-disable-line example/rule-name

35

ตอบ

// eslint-disable-next-line rule-nameคุณสามารถใช้แสดงความคิดเห็นแบบอินไลน์:

ตัวอย่าง

// eslint-disable-next-line no-console
console.log('eslint will ignore the no-console on this line of code');

การอ้างอิง

ESLint - ปิดการใช้งานกฎด้วยความคิดเห็นแบบอินไลน์


31

ความคิดเห็นทั่วไปในตอนท้ายของบรรทัด, // eslint-disable-lineไม่ต้องการอะไรหลังจากนั้น: ไม่จำเป็นต้องค้นหาโค้ดเพื่อระบุสิ่งที่คุณต้องการให้ ES Lint ละเว้น

หากคุณต้องการละเว้นไวยากรณ์ด้วยเหตุผลอื่นนอกเหนือจากการดีบักอย่างรวดเร็วคุณมีปัญหา: ทำไมไม่อัปเดตการกำหนดค่า delint ของคุณ

ฉันสนุกที่// eslint-disable-lineจะอนุญาตให้ฉันแทรกconsoleการตรวจสอบบริการที่รวดเร็วโดยที่ฉันไม่ได้อยู่ในสภาพแวดล้อมการพัฒนาที่คอยรั้งฉันไว้เพราะการละเมิดโปรโตคอล (โดยทั่วไปฉันห้ามconsoleและใช้คลาสการบันทึก - ซึ่งบางครั้งก็สร้างขึ้นconsole)


ไม่มีความผิด แต่นี่เป็นคำตอบเดียวกับคำตอบที่ยอมรับดังนั้นไม่แน่ใจว่าจะช่วยได้อย่างไร
darren

25
อย่าทำอย่างนี้. หากคุณมี 5 ข้อผิดพลาดในบรรทัดพวกเขาทั้งหมดจะถูกละเว้น กำหนดกฎที่ควรละเว้นอย่างชัดเจนเสมอมิฉะนั้นเด็กจะทำสิ่งสกปรก
Filip Dupanović

3
@ FilipDupanovićหากโปรแกรมเมอร์ของคุณสามารถทำให้ยุ่งเหยิงภายในรหัสบรรทัดเดียวเพียงเพราะ eslint ไม่ได้มองข้ามไหล่ของพวกเขาสำหรับบรรทัดเดียว บริษัท ของคุณมีบางอย่างที่ผิดพลาดจริง ๆ ... ที่กล่าวว่าการบอกว่ากฎที่คุณต้องการเพิกเฉยทำให้ชัดเจนยิ่งขึ้นว่าทำไมคุณถึงปิดการใช้งานบรรทัดนั้นตั้งแต่แรก
Edwin Stoteler

2
@ FilipDupanovićบางที eslint ควรมีกฎเมตาสำหรับการกำหนดกฎที่ชัดเจนที่จะไม่สนใจ? บางทีมันอาจจะทำแล้ว
Josef.B

1
@ Josef.B มีกฎที่ไม่ได้มาตรฐานสำหรับ: github.com/sindresorhus/eslint-plugin-unicorn/blob/master/docs/ ...... มันทำงานได้ดีมาก
Craig Harley

13

หรือข้ามหลายบรรทัดในบรรทัดถัดไปให้วางกฎโดยใช้เครื่องหมายจุลภาค

// eslint-disable-next-line class-methods-use-this, no-unused-vars



1

ความคิดเห็นบรรทัดเดียวไม่ทำงานสำหรับฉันภายในองค์ประกอบการทำงานเป็นใบ้ปฏิกิริยาฉันได้ใช้การปิดใช้งานระดับไฟล์โดยการเพิ่ม / * eslint-disable insertEslintErrorDefinition ที่นี่ * /

(ปกติถ้าคุณใช้รหัส vs และรับข้อผิดพลาด eslint คุณสามารถคลิกที่บรรทัดที่ให้ข้อผิดพลาดและหลอดไฟจะปรากฏขึ้นในรหัส vs คลิกขวาบนหลอดไฟและเลือกตัวเลือกปิดการใช้งานและรหัส vs จะทำเพื่อ คุณ.)


-5

คุณสามารถเพิ่มไฟล์ที่ให้ข้อผิดพลาดในไฟล์. eslintignore ในโครงการของคุณเช่นเดียวกับไฟล์. vue ทั้งหมดเพียงแค่เพิ่ม /*.vue


4
มันขอหนึ่งบรรทัดไม่ใช่ไฟล์ทั้งหมด
Kevin Danikowski

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