| 👀 خبر در یک نگاه:
Oxlint v1.0، لینتر جاوااسکریپت و تایپاسکریپت مبتنی بر Rust منتشر شد؛ با سرعتی ۵۰ تا ۱۰۰ برابر ESLint، پشتیبانی از بیش از ۵۲۰ قانون، حالت بدون پیکربندی و ابزارهای مهاجرت برای پذیرش سریع در پروژههای متنباز و سازمانی. |
Oxlint، یک لینتر جاوااسکریپت و تایپاسکریپت مبتنی بر Rust که بهعنوان بخشی از زنجیره ابزار Oxc توسعه یافته، به اولین انتشار پایدار خود رسیده است. نسخه 1.0 ترکیبی از سرعت بالا در لینت، پوشش گسترده قوانین و ابزارهای مهاجرت را ارائه میدهد تا پذیرش آن برای پروژههای متنباز و همچنین شرکتهای بزرگ سادهتر شود.
آشنایی باOxlint v1.0
Oxlint v1.0 با پشتیبانی از بیش از ۵۲۰ قانون ESLint، قابلیت تحلیل چندفایلی و تنظیمات پیشفرض بدون نیاز به پیکربندی عرضه میشود. نگهدارندگان پروژه ادعا میکنند که در سناریوهای واقعی، بهبود کارایی ۵۰ تا ۱۰۰ برابری نسبت به ESLint به دست آمده است؛ بهطوری که پروژههایی که پیشتر چند دقیقه زمان برای لینت نیاز داشتند، اکنون در کمتر از یک ثانیه انجام میشوند.
اجرای قوانین چندفایلی
Oxlint میتواند قوانین چندفایلی را بهشکل کارآمد اجرا کند. برای مثال قوانین import/no-cycle و oxc/no-barrel-file که نیازمند بررسی وابستگیها بین فایلهای متعدد هستند. در آزمایشهای داخلی Airbnb، Oxlint توانست این قوانین را روی مخزنی شامل بیش از ۱۲۶هزار فایل تنها در ۷ ثانیه اجرا کند؛ کاری که ESLint در همان محیط به دلیل تایماوت قادر به تکمیل آن نبود.
تجربه کاربری
تجربه استفاده اولیه از Oxlint بهطور مینیمال طراحی شده و در حال حاضر تنها میتواند جایگزین کامل ESLint در پروژههای کوچک تا متوسط شود.
آغاز به کار
توسعهدهندگان میتوانند تنها با یک دستور کار را آغاز کنند:
npx oxlint@latest .
حالت بدون پیکربندی
حالت بدون پیکربندی (zero-config) در Oxlint برای پذیرش سریع طراحی شده است و به توسعهدهندگان امکان میدهد بلافاصله شروع به لینت کردن کنند. برای تیمهایی که به سفارشیسازی بیشتری نیاز دارند، Oxlint از فایلهای پیکربندی .oxlintrc.json پشتیبانی میکند که بر اساس سیستم flat config نسخه 8 ESLint مدلسازی شدهاند. این روش از تنظیمات تو در تو، بازنویسی قوانین و پیکربندیهای مشترک قابلگسترش پشتیبانی میکند.
مهاجرت به Oxlint
برای سادهسازی مهاجرت، ابزارهایی مانند oxlint-migrate و eslint-plugin-oxlint در دسترس هستند که به توسعهدهندگان اجازه میدهند تنظیمات موجود ESLint را تبدیل کرده و حتی هر دو لینتر را در کنار هم طی یک انتقال تدریجی اجرا کنند. برای پروژههای بزرگتر توصیه میشود از افزونه eslint-plugin-oxlint استفاده شود که قوانین ESLint پشتیبانیشده توسط Oxlint را غیرفعال میکند و امکان اجرای همزمان هر دو را فراهم میآورد تا زمان مهاجرت کامل برسد.
این لینتر از بیش از ۵۲۰ قانون پشتیبانی میکند و مجموعه قوانین آن همچنان در حال گسترش است. قوانین جدید در حال بازبینی و اضافهشدن از منابعی مانند هسته eslint، typescript-eslint، eslint-plugin-react، eslint-plugin-vitest و دیگر افزونهها هستند. فهرست کامل در طرح محصول GitHub موجود است.
بازخوردها
بازخورد توسعهدهندگان عمدتا مثبت بوده است. یک کاربر در ردیت، نظر داده بود:
«من بهتازگی برای یکی از پروژههایم از ESLint به Oxlint مهاجرت کردم و تجربهام کاملا خوب بود. سرعتش خیلی بالاست، توانستم حدود ۵ یا ۶ وابستگی را فقط با یکی جایگزین کنم و فرمت پیکربندی هم خیلی سادهتر است. قبلا تصمیم گرفتم از Biome استفاده نکنم چون فرمتکننده آن هنوز از مرتبسازی کلاسهای Tailwind پشتیبانی نمیکند اما حالا Oxlint را همراه با Prettier اجرا میکنم.»
عملکرد بالای Oxlint به معماری مبتنی بر Rust و استفاده از پارسر مشترک Oxc نسبت داده میشود که طبق بنچمارکهای آنها، ۵۰ تا ۱۰۰ برابر سریعتر از ESLint و حتی ۲ برابر سریعتر از Biome است.
اکستنشنها برای استفاده در ویرایشگرهای مختلف مانند VSCode، IntelliJ، WebStorm و Zed Editor از همین حالا در دسترس هستند.
جمعبندی
نگهدارندگان پروژه اشاره کردهاند که Oxlint در حال حاضر از قوانین آگاه به نوع (Type-Aware Rules) پشتیبانی نمیکند اما این ویژگی برای نسخههای آینده در نظر گرفته شده است. همچنین پشتیبانی از افزونههای سفارشی ESLint-style هم در برنامه قرار دارد.
Oxlint بهعنوان یک بسته متنباز روی npm منتشر شده و میتواند در توسعه محلی، جریانهای CI/CD یا مونوریپوها ادغام شود. مستندات کامل و راهنمای مهاجرت در سایت oxc.rs، بههمراه اطلاعات بیشتر درباره سایر ابزارهای موجود در زنجیره ابزار Oxc در دسترس است.
منبع: infoq.com



دیدگاهتان را بنویسید