Dart Sass 2 تو راهه: هشدارها خطا میشن
خلاصهٔ کاملتر
ناتالی وایزنباوم از تیم Sass تو این پست برنامهی Dart Sass 2 رو توضیح داده که قراره دسامبر ۲۰۲۶ منتشر بشه. به گفتهی خودش، این نسخه بیشتر «یه مشت breaking change بدون اسباببازی جدید» هست. تیم Sass فیچرهای جدید رو همون موقع که آماده میشن تو 1.x منتشر میکنه، ولی تغییرهای ناسازگار رو نگه میداره برای نسخهی اصلی بعدی.
فرق اصلی 2.0.0 با آخرین نسخهی 1.x اینه که بیشتر چیزهایی که الان deprecation warning میدن (یعنی هشدار «این قابلیت داره حذف میشه»)، تو نسخهی ۲ خطا میشن. سه تا استثنا هست: هر چیزی که به @import ربط داره (import، global-builtin و color-module-compat) تا Dart Sass 3 فقط هشدار میمونه. تابع قدیمی if() هم تا نسخهی ۳ میمونه، چون سینتکس جدیدش کمتر از یه ساله اومده. هیچ deprecationی هم که بعد از نسخهی 1.105.0 اضافه بشه، تو نسخهی ۲ خطا نمیشه.
تنها تغییر رفتاری بزرگ اینه که Dart Sass 2 مثل CSS با / بهعنوان جداکننده رفتار میکنه، نه عملگر تقسیم. یعنی / یه لیست اسلشدار میسازه، همون چیزی که الان list.slash() درست میکنه. برای تقسیم باید از math.div() استفاده کنی یا / رو داخل calc() بنویسی. این تغییر اونقدر ناسازگار بود که نمیشد تو 1.x اضافهش کرد.
تیم Sass پیشنهاد میده از همین الان با سیستم کنترل deprecation، هشدارها رو به خطا تبدیل کنی تا ببینی کدت آمادهست یا نه. تو CLI این کار با فلگ --fatal-deprecations انجام میشه و تو JS API هم با گزینهی fatalDeprecations:
{
fatalDeprecations: [
sass.Version.parse("1.79.0"),
'compile-string-relative-url',
'misplaced-rest',
'with-private',
'function-name',
'adjacent-compounds',
],
}به گفتهی نویسنده، اگه استایلهات با این تنظیم روی آخرین نسخهی Sass بدون خطا کامپایل بشن، Dart Sass 2 چیزی رو برات نمیشکنه. اگه هنوز deprecation داری، ابزار Sass migrator خیلی از رایجترینهاش رو خودکار درست میکنه.
نکات کلیدی:
- انتشار Dart Sass 2 برای دسامبر ۲۰۲۶ برنامهریزی شده
- بیشتر deprecation warningهای 1.x تو نسخهی ۲ خطا میشن
- حذف کامل @import و تابع قدیمی if() به Dart Sass 3 موکول شده
- deprecationهای اضافهشده بعد از 1.105.0 تو نسخهی ۲ خطا نمیشن
- / تو نسخهی ۲ جداکنندهست؛ برای تقسیم از math.div() یا calc() استفاده کن
- با fatalDeprecations یا فلگ --fatal-deprecations میشه از الان آمادگی کد رو تست کرد




