เครื่องสร้าง ESLintrc
เครื่องมือนี้จะสร้างการกำหนดค่า .eslintrc.json ที่พร้อมใช้งานจากตัวเลือก 4 อย่าง ได้แก่ สภาพแวดล้อมของเบราว์เซอร์หรือ Node, การรองรับ TypeScript และการรองรับ React โดยเชื่อม eslint:recommended, ปลั๊กอิน TypeScript หรือ React ที่ตรงกัน และการแทนที่กฎที่สมเหตุสมผลบางข้อ เพื่อให้คุณนำผลลัพธ์ไปวางในโปรเจกต์ได้ทันที
วิธีการสร้างไฟล์กำหนดค่า ESLint
-
1
เลือกสภาพแวดล้อม
ระบุว่าโค้ดทำงานในเบราว์เซอร์, ใน Node.js หรือทั้งสองแบบ เครื่องสร้างจะตั้งค่ารายการ `env` ที่ตรงกัน พร้อมกับ `es2022`
-
2
เปิดใช้งาน TypeScript
ทำเครื่องหมาย TypeScript แล้วเครื่องสร้างจะเพิ่ม `@typescript-eslint/parser` และปลั๊กอิน TypeScript ที่แนะนำ
-
3
เปิดใช้งาน React
ทำเครื่องหมาย React แล้วเครื่องสร้างจะเพิ่ม `eslint-plugin-react` พร้อมค่าที่ตั้งไว้ล่วงหน้าตามที่แนะนำ
-
4
สร้าง
คลิกปุ่มแล้วการกำหนดค่าจะถูกสร้างเป็น JSON ที่จัดรูปแบบให้อ่านง่าย
-
5
คัดลอกไปยังโปรเจกต์ของคุณ
วางผลลัพธ์ลงใน `.eslintrc.json` และติดตั้งปลั๊กอินที่การกำหนดค่าอ้างถึง
การกำหนดค่าที่สร้างขึ้นประกอบด้วยอะไรบ้าง
เครื่องสร้างจะเริ่มจาก eslint:recommended เสมอ และเพิ่มเฉพาะสิ่งที่ตรงกับตัวเลือกของคุณ:
envที่มีbrowserและ/หรือnodeพร้อมกับes2022@typescript-eslint/parserและplugin:@typescript-eslint/recommendedเมื่อเปิดใช้ TypeScriptplugin:react/recommendedเมื่อเปิดใช้ Reactno-consoleและno-unused-varsตั้งค่าเป็นwarn
ผลลัพธ์เป็นออบเจกต์ JSON ธรรมดาในรูปแบบ .eslintrc.json ดั้งเดิม พร้อมวางและเพิ่มกฎของคุณเอง
การเปรียบเทียบระหว่างการกำหนดค่าแบบแบนกับแบบเดิม
ESLint เวอร์ชัน 9 ได้ยกเลิกการใช้รูปแบบ .eslintrc.* และเปลี่ยนมาใช้รูปแบบการกำหนดค่าแบบแบน (eslint.config.js) แทน ซึ่งมีความแตกต่างสำคัญดังนี้:
| ประเด็น | แบบเดิม (.eslintrc) | แบบแบน (eslint.config.js) |
|---|---|---|
| รูปแบบ | JSON, YAML หรือ CommonJS | โมดูล JavaScript แบบ ESM หรือ CommonJS |
| การสืบทอด | extends: ["plugin:react/recommended"] |
กระจายเข้าไปในอาร์เรย์: ...reactPlugin.configs.recommended |
| การแทนที่ค่า | อาร์เรย์ overrides ที่ใช้รูปแบบ glob |
หลายอ็อบเจกต์ในอาร์เรย์ที่ส่งออก |
| ตัวแปรส่วนกลาง | env: { browser: true } |
languageOptions.globals ที่มีการนำเข้าอย่างชัดเจน |
| การละเว้น | ไฟล์ .eslintignore |
ฟิลด์ ignores ในอาร์เรย์การกำหนดค่า |
โครงการใหม่ควรใช้การกำหนดค่าแบบแบน ส่วนโครงการที่มีอยู่เดิมสามารถคงใช้รูปแบบเดิมได้จนถึงเวอร์ชัน 10.x แต่แนะนำให้ย้ายไปยังรูปแบบใหม่
ระบบนิเวศของปลั๊กอิน
ปลั๊กอินสำหรับโปรเจกต์ React/TS ที่พบได้ทั่วไป:
@typescript-eslint/eslint-plugin
@typescript-eslint/parser
eslint-plugin-react
eslint-plugin-react-hooks
eslint-plugin-jsx-a11y
eslint-plugin-import
eslint-config-prettier
นั่นคือแพ็กเกจทั้งหมด 6 ชุดสำหรับการตั้งค่าที่มีความเห็นเฉพาะตัวในระดับปานกลาง เครื่องสร้างจะเพิ่มเฉพาะที่คุณเลือก คุณจึงติดตั้งเฉพาะสิ่งที่การกำหนดค่าอ้างถึง
การอยู่ร่วมกับ Prettier
Prettier ทำหน้าที่ดูแลการจัดรูปแบบ ในขณะที่ ESLint จะดูแลความถูกต้องของโค้ดและรูปแบบการเขียนโค้ดนอกเหนือจากการจัดรูปแบบ เพื่อหลีกเลี่ยงความขัดแย้ง:
- ติดตั้ง
eslint-config-prettierและเพิ่มเข้าไปเป็นรายการสุดท้ายในไฟล์ extends/config ของคุณ - จะปิดใช้งานกฎทั้งหมดของ ESLint ที่ขัดแย้งกับผลลัพธ์ที่ได้จาก Prettier
- รันโปรแกรม Prettier แยกต่างหาก (เมื่อบันทึกในตัวแก้ไข ขณะรอการยืนยันการเปลี่ยนแปลง และในขั้นตอน CI)
อย่าใช้ eslint-plugin-prettier ในโปรเจกต์ใหม่ เนื่องจากมันจะทำให้ ESLint ทำงานช้าลงเนื่องจากการรันโปรแกรม Prettier ภายใน ESLint ควรแยกเครื่องมือทั้งสองออกจากกัน
คำแนะนำในการปรับแต่งกฎ
- เริ่มจากการปล่อยให้คลายอยู่ก่อน แล้วค่อยๆ ปรับให้แน่นขึ้นทีละน้อย ให้ระบบแสดงคำเตือนก่อนที่จะเกิดข้อผิดพลาด
- การกำหนดค่าแทนสำหรับการทดสอบ: ไฟล์ทดสอบมักต้องใช้ค่า
no-unused-expressionsในรูปแบบที่ผ่อนปรน และต้องมีการใช้งานตัวแปรระดับโลก (global variables) ของ Jest ได้ - การกำหนดค่าแทนสำหรับสคริปต์: สคริปต์ที่ใช้ในการสร้างอาจต้องการใช้ค่าระดับโนด (Node globals) โดยไม่จำเป็นต้องเพิ่ม
env: nodeในระดับทั่วไป - การแก้ไขกฎในเอกสาร: การเปลี่ยนแปลงกฎแต่ละครั้งควรมาพร้อมคำอธิบายเพื่อชี้แจงเหตุผล
ค่ากำหนดการที่ตรงกับโปรแกรมแก้ไขของคุณ
VS Code จำเป็นต้องมีการติดตั้งและกำหนดค่า ESLint extension ไว้แล้ว ให้เพิ่ม ESLint extension เหล่านี้ลงในการตั้งค่าพื้นที่ทำงาน เพื่อให้ระบบแก้ไขข้อผิดพลาดโดยอัตโนมัติเมื่อบันทึกไฟล์
{
"editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" },
"eslint.validate": ["javascript", "typescript", "javascriptreact", "typescriptreact"]
}
คำถามที่พบบ่อย
สำหรับโปรเจกต์ใหม่ ให้ใช้รูปแบบการกำหนดค่าแบบแบน (eslint.config.js) เครื่องสร้างนี้จะส่งออกรูปแบบ .eslintrc.json ดั้งเดิม ซึ่ง ESLint อ่านได้โดยตรงในโหมด legacy ส่วนตารางเปรียบเทียบด้านบนแสดงสิ่งที่เปลี่ยนไปหากคุณย้ายในภายหลัง
ใช่ หากคุณกำลังใช้ TypeScript ตัวกำหนดค่า @typescript-eslint/parser และ @typescript-eslint/eslint-plugin จะช่วยให้ระบบตรวจสอบข้อผิดพลาดสามารถทำงานได้อย่างเหมาะสมเมื่อจับคู่กับ TypeScript ส่วนสำหรับกฎที่คำนึงถึงชนิดข้อมูล (ไม่เพียงแค่ไวยากรณ์) ควรกำหนดค่าตัววิเคราะห์โค้ดด้วย project: './tsconfig.json' ด้วย
โดยปกติแล้วมักจะไม่มีการระบุข้อมูลการพึ่งพาที่จำเป็นในกระบวนการ CI โปรดตรวจสอบให้แน่ใจว่า @typescript-eslint/* ปลั๊กอิน และเวอร์ชันของ ESLint มีความสอดคล้องกันระหว่างระบบท้องถิ่นกับระบบ CI และควรใช้ npm ci (ไม่ใช่ npm install) ในระบบ CI เพื่อให้สอดคล้องกับไฟล์ล็อกไฟล์
ไม่ การเลือกของคุณใช้เพื่อสร้างการกำหนดค่าเท่านั้น ไม่มีการจัดเก็บ และไม่มีการแชร์ให้บุคคลที่สาม
เครื่องมือที่เกี่ยวข้อง
ตารางอ้างอิง ASCII
ตาราง ASCII ครบตั้งแต่ 0 ถึง 127 พร้อมค่าเลขฐานสิบ ฐานสิบหก ฐานแปด ฐานสอง และรูปแบบการอ้างอิงอักขระแบบตัวเลขของ HTML รวม NUL, LF และ DEL
อ้างอิงตัวอักษร HTML
รายการที่สามารถค้นหาได้ขององค์ประกอบ HTML พร้อมรหัสชื่อและรหัสตัวเลข รวมถึงฟังก์ชันสำเนาด้วยคลิกเดียวสำหรับตัวอักษรพิเศษและสัญลักษณ์ต่างๆ
ตารางอ้างอิงแป้นพิมพ์ลัด
ค้นหาแป้นพิมพ์ลัดเริ่มต้นตามเอกสารของ VS Code, Chrome และ Bash ที่ใช้ GNU Readline บน macOS, Windows และ Linux
เครื่องสร้างตัวอักษรสุ่ม
สร้างตัวอักษร A-Z แบบสุ่ม เลือกจำนวน ตัวพิมพ์ใหญ่ ตัวพิมพ์เล็ก หรือแบบผสม แล้วใช้กับเกม โจทย์ หรือกิจกรรมในห้องเรียน
ตัวลดรูปพีชคณิตบูลีน
ประเมินนิพจน์บูลีนสำหรับทุกชุดอินพุตและดูตารางค่าความจริงที่สมบูรณ์ รองรับตัวแปรสูงสุดห้าตัวและตัวดำเนินการ &, |, !, ^
เครื่องมือตรวจสอบหมายเลขโทรศัพท์
ตรวจสอบโครงสร้างหมายเลขตามประเทศ พร้อมดูภูมิภาค ประเภท และรูปแบบ E.164 ระหว่างประเทศ ในประเทศ และ RFC 3966
เครื่องมือนี้มีให้บริการในภาษาอื่น
- ESLintrc Generator [EN]
- ESLintrc-generator [SV]
- ESLintrc-Generator [DE]
- ESLintrc-generator [NL]
- ESLintrc ジェネレーター [JA]
- Generador de ESLintrc [ES]
- ESLintrc 생성기 [KO]
- Gerador de ESLintrc [PT]
- Generator .eslintrc [PL]
- Générateur d'ESLintrc [FR]
- Bộ tạo ESLintrc [VI]
- ESLintrc生成器 [ZH]
- مولد ESLintrc [AR]
- ESLintrc Üreticisi [TR]
- Generator ESLintrc [ID]
- Generatore ESLintrc [IT]
- Генератор ESLintrc [RU]