- Oxlint เครื่องมือ lint สำหรับ JavaScript/TypeScript ที่พัฒนาด้วย Rust เปิดตัวเวอร์ชัน 1.0 อย่างเป็นทางการแล้ว
- ทำงานได้เร็วกว่า ESLint 50~100 เท่า, รองรับกฎของ ESLint มากกว่า 500 ข้อ และมีกรณีใช้งานจริงในองค์กรขนาดใหญ่อย่าง Shopify, Airbnb, Mercedes-Benz เป็นต้น
- ใช้งานได้ทันทีโดยไม่ต้องตั้งค่า และรองรับทั้ง การย้ายค่าตั้งเดิม รวมถึง การใช้งานร่วมกัน กับ ESLint
- รองรับ การเชื่อมต่อกับเอดิเตอร์หลัก (VSCode, IntelliJ, Zed เป็นต้น) และมี LSP พร้อมข้อความวินิจฉัยข้อผิดพลาดที่ละเอียดและแสดงผลเข้าใจง่าย
- ยังเผย โรดแมปในอนาคต เช่น กฎแบบกำหนดเอง, การเพิ่มประสิทธิภาพ, และการตั้งค่าที่ละเอียดมากขึ้น
ไฮไลต์สำคัญของ Oxlint 1.0
ประสิทธิภาพและการใช้งานในระดับใหญ่
- พัฒนาด้วย Rust ทำให้ lint ไฟล์นับหมื่นได้รวดเร็วมากเมื่อรันพร้อมกัน
- ตัวอย่าง: lint ไฟล์ 126,000 ไฟล์ของ Airbnb ได้ใน 7 วินาที, ส่วน Mercedes-Benz เร็วขึ้น 71~97%
- ในรีโพซิทอรีขนาดใหญ่ที่สุด วิเคราะห์ไฟล์ 265,000 ไฟล์ด้วยกฎ 101 ข้อได้ภายใน 22.5 วินาที
ใช้งานได้ทันที & นำไปใช้ได้ง่าย
- ติดตั้งแล้ว รันได้ทันทีโดยไม่ต้องตั้งค่า
- ใช้งานได้ทันทีด้วย
npx oxlint@latest หรือผ่าน pnpm/yarn/bun/deno
- รองรับการตั้งค่าแบบกำหนดเองผ่าน
.oxlintrc.json สำหรับโปรเจกต์ขนาดใหญ่และสภาพแวดล้อมแบบทีม
- อิงตามฟอร์แมต flat config ของ ESLint v8 จึงคุ้นเคยและใช้งานง่าย
- ย้ายค่าตั้งเดิมจาก ESLint ได้ด้วย
oxlint-migrate และปิดกฎที่ซ้ำซ้อนได้ด้วย eslint-plugin-oxlint
- แนวทางที่แนะนำ: รัน oxlint ร่วมกับ eslint เพื่อรับ feedback ได้เร็วขึ้น
รองรับกฎอย่างกว้างขวาง
- รองรับ กฎทั้งหมดของ ESLint และกฎจำนวนมากจากปลั๊กอิน typescript-eslint, unicorn, jsdoc, react, jest, import
- มีกฎเฉพาะของตัวเองด้วย เช่น bad comparison sequence, const comparisons
การตั้งค่าที่ยืดหยุ่น
- รองรับ การตั้งค่าแบบซ้อนตามโฟลเดอร์, override ตาม glob, และการขยาย shared config
- ช่วยให้ทีมรักษามาตรฐานคุณภาพโค้ดให้สม่ำเสมอได้
การเชื่อมต่อกับเอดิเตอร์
- มีส่วนขยายสำหรับ VSCode, IntelliJ/WebStorm, Zed เป็นต้น และรองรับ LSP
- ช่วยให้ วินิจฉัยข้อผิดพลาดและแนะนำการแก้ไขได้ทันที ใน IDE หลากหลายตัว
ข้อความวินิจฉัย
- ไม่ได้มีแค่คำอธิบายข้อผิดพลาดแบบง่าย ๆ แต่ยัง แสดงสาเหตุและแนวทางแก้ไขแบบมองเห็นได้ชัดเจน
Benchmark
| เครื่องมือ |
เวลาในการรัน |
| oxlint(มัลติเธรด) |
615ms |
| oxlint(เธรดเดียว) |
1.8 วินาที |
| eslint |
33.5 วินาที |
โรดแมป
- เตรียมรองรับ custom rule ที่เขียนด้วย JavaScript
- มีแผนเพิ่ม การปรับแต่งประสิทธิภาพ อย่างต่อเนื่อง และเพิ่มการตั้งค่าแบบละเอียดตาม glob ในแนวทางของ ESLint v9
4 ความคิดเห็น
Rust คือคีย์ลัดโกงเพื่อเพิ่มประสิทธิภาพหรือเปล่า
ดูเหมือนว่ายังไม่ได้รองรับ vue หรือ nestjs อย่างสมบูรณ์นะครับ
https://github.com/oxc-project/oxc/issues/481
Oxlint - JS linter ที่เร็วกว่า ESLint 50~100 เท่า