Oxlint؛ لینتری که میخواد جای ESLint رو بگیره
خلاصهٔ کاملتر
تو مستندات خود Oxc اومده که Oxlint یه لینتر برای JavaScript و TypeScript هست که روی استک کامپایلر Oxc ساخته شده و هدفش صراحتاً ریپوهای بزرگ و CI هست. تیمش میگه معماریش اون گلوگاههای ساختاری که سرعت ESLint رو محدود میکنه نداره و طبق بنچمارکهای خودشون ۵۰ تا ۱۰۰ برابر از ESLint سریعتر درمیاد.
همینجوری که نصبش کنی هم به درد میخوره. قوانین پیشفرضش روی درستی کد تمرکز دارن، یعنی چیزهایی که واقعاً غلط یا ناامن یا بیفایدهان، نه سلیقه و استایل. اینطوری تیم میتونه بدون سیل هشدار بیمورد سوئیچ کنه و بعداً قانونهای بیشتر رو کمکم روشن کنه.
برای مهاجرت، بیشتر از ۸۶۵ قانون داره که قوانین اصلی ESLint، قوانین TypeScript و پلاگینهای پرکاربردی مثل React و Jest و Vitest و Import و Unicorn و jsx-a11y رو پوشش میدن. ابزار @oxlint/migrate هم کانفیگ ESLint موجودت رو برات تبدیل میکنه. راهاندازیش هم در همین حد سادهست:
{
"scripts": {
"lint": "oxlint",
"lint:fix": "oxlint --fix"
}
}نکتهٔ فنی جالبش لینت تایپمحوره (یعنی قانونهایی که برای تصمیمگیری به اطلاعات تایپ نیاز دارن، مثل پیدا کردن promiseهای رهاشده). Oxlint بهجای اینکه خودش تایپها رو حدس بزنه، از tsgo یعنی پورت Go کامپایلر TypeScript استفاده میکنه تا رفتارش دقیقاً همون رفتار خود TypeScript باشه. تو مستندات اومده که Biome مسیر دیگهای رفته و type inference خودشو پیاده کرده، که هنوز پوشش کاملی نداره.
تحلیل چندفایلی هم داره: وقتی روشنش کنی، یه گراف ماژول در سطح کل پروژه میسازه و پارس و resolve رو بین قانونها به اشتراک میذاره. یعنی قانونهایی مثل import/no-cycle که تو ESLint معمولاً باعث افت شدید سرعت میشن، اینجا قابلتحملتر میشن.
نکات کلیدی:
- طبق بنچمارک رسمی پروژه، ۵۰ تا ۱۰۰ برابر سریعتر از ESLint.
- بیش از ۸۶۵ قانون داخلی، بهعلاوه پشتیبانی alpha از JS pluginهای سازگار با ESLint.
- لینت تایپمحور روی tsgo (پورت Go کامپایلر TypeScript) سوار شده.
- تو فایلهای .vue و .svelte و .astro فقط بلوک اسکریپت لینت میشه.
- تو kibana، Sentry، Electron، Renovate، Preact و PostHog در حال استفادهست.




