از Baseline با فهرست مرورگرها استفاده کنید

تاریخ انتشار: 7 مه 2025

فهرست مرورگرها یکی از محبوب‌ترین ابزارها برای پیکربندی حداقل نسخه‌های مرورگر پشتیبانی‌شده در پایگاه‌های کد جلویی است. توسعه دهندگان یک جستجوی browserslist را به فایل package.json خود اضافه می کنند و فهرست مرورگرها لیستی از حداقل مرورگرهای پشتیبانی شده را نشان می دهد. فهرست مرورگرها را می‌توان با طیف گسترده‌ای از ابزارهای پرطرفدار پرکننده، پرکننده و بسته‌بندی استفاده کرد، از جمله:

اهداف پایه

هنگامی که تصمیم به استفاده از Baseline دارید، باید پایگاه کاربری خود را در نظر بگیرید و تصمیم بگیرید که کدام مجموعه ویژگی Baseline را می‌خواهید هدف قرار دهید:

  • Baseline Widely available شامل تمام ویژگی های وب است که 30 ماه یا بیشتر در گذشته توسط مرورگر اصلی Baseline به طور کامل پشتیبانی می شد.
  • مجموعه ویژگی‌های سال پایه، به عنوان مثال ، Baseline 2020 ، شامل همه ویژگی‌هایی است که به تازگی در پایان سال مشخص شده در دسترس بودند.

بسته به پایگاه کاربر خود، ممکن است بتوانید خط پایه را به صورت گسترده در دسترس قرار دهید، یا ممکن است لازم باشد سال پایه قدیمی تری را هدف قرار دهید. با ابزارهای تجزیه و تحلیل یا RUM خود مشورت کنید تا متوجه شوید که کاربران شما کدام نسخه مرورگر را دارند.

browserslist-config-baseline را نصب کنید

هنگامی که تصمیم گرفتید کدام مجموعه ویژگی Baseline را می خواهید هدف قرار دهید، می توانید آن هدف را در ابزارهای توسعه دهنده خود اعمال کنید. ساده ترین راه برای انجام این کار برای هر ابزاری که از فهرست مرورگرها استفاده می کند، نصب browserslist-config-baseline است:

# npm npm i browserslist-config-baseline@latest -D  # yarn yarn add --latest browserslist-config-baseline -D  # bun bun add browserslist-config-baseline@latest -d 

چگونه خط پایه را هدف قرار دهیم به طور گسترده در دسترس است

برای هدف قرار دادن Baseline به طور گسترده در دسترس، پیکربندی فهرست browserlist را با استفاده از کلمه کلیدی extends در package.json به‌روزرسانی یا اضافه کنید:

{   ...   "browserslist": [     "extends browserslist-config-baseline"    ]   ... } 

هنگامی که browserslist لیست مرورگرهای پشتیبانی شده خود را بارگیری می کند، browserslist-config-baseline به صورت پویا حداقل نسخه های مرورگر فعلی را ایجاد می کند که از همه ویژگی هایی که اکنون به طور گسترده در دسترس هستند پشتیبانی می کند. شما همچنین می توانید extends browserslist-config-baseline به یک فایل .browserslistrc اضافه کنید و به همین ترتیب مدیریت می شود.

نحوه هدف گذاری سال های پایه

اگر می‌خواهید مجموعه ویژگی‌های سال پایه را هدف قرار دهید، یک / و سال را در قالب YYYY به انتهای جستار browserslist خود اضافه کنید:

"browserslist": "extends browserslist-config-baseline/2020" 

نحوه تعیین مرورگرهای پایین دست

مجموعه مرورگر اصلی Baseline شامل کروم، اج، فایرفاکس و سافاری است. سایر مرورگرها بر اساس همان کد منبع باز Chrome و Edge-Chromium- هستند و باید از همان مجموعه ویژگی‌هایی که هر نسخه از Chromium پیاده‌سازی می‌کنند پشتیبانی کنند.

browserslist-config-baseline baseline-browser-mapping برای مرتبط کردن نسخه های مرورگر با مجموعه ویژگی هایی که پشتیبانی می کنند استفاده می کند. نقشه‌برداری‌ها برای تلفن همراه مرورگر UC و موبایل مرورگر QQ در baseline-browser-mapping موجود است و ممکن است مرورگرهای دیگری در آینده گنجانده شوند.

برای گنجاندن این مرورگرها در پیکربندی Baseline خود، بلافاصله پس از نام ماژول در پیکربندی browserslist خود، /with-downstream را اضافه کنید:

"browserslist": "extends browserslist-config-baseline/with-downstream" 

یا:

"browserslist": "extends browserslist-config-baseline/with-downstream/2020" 

نمونه هایی از browserslist-config-baseline در عمل

در ابزار بسته بندی

افزودن browserslist-config-baseline به مخزن شما می تواند تأثیر فوری داشته باشد. Babel یک ابزار ساخت محبوب برای بسته بندی جاوا اسکریپت است. اگر از پیش‌فرض‌های بسته @babel/preset-env استفاده می‌کنید، بسیاری از APIها و متدهای جاوا اسکریپت مدرن با نحو پرمخاطب‌تر مورد نیاز مرورگرهای قدیمی جایگزین خواهند شد:

یک جلسه ترمینال که نشان می دهد دستور ساخت npm run روی یک فایل جاوا اسکریپت به نام test.js اجرا شده است.  حجم فایل خروجی 12 کیلوبایت است.

با این حال، تنظیم browserslist-config-baseline برای هدف قرار دادن Baseline 2020 در همان پروژه نمونه به طور چشمگیری اندازه خروجی این جاوا اسکریپت را کاهش می دهد، زیرا تبدیل های نحوی کمتری مورد نیاز است:

جلسه دوم ترمینال نشان می دهد که دستور ساخت npm run اکنون یک فایل 1.5 کیلوبایتی تولید کرده است، زمانی که babel قرار است Baseline 2020 را هدف قرار دهد.

این را خودتان با استفاده از کد مثال موجود در مخزن آزمایشی پایه Google Chrome Labs امتحان کنید.

در لینتر

برخی از لینترها از قبل با فهرست مرورگرها کار می کنند یا می توان با استفاده از یک ماژول سازگاری با فهرست مرورگرها کار کرد. برای مثال، stylelint می‌تواند پیکربندی فهرست browserslist را با استفاده از ماژول stylelint-browser-compat مصرف کند. فایل stylelint.config.js خود را برای استفاده از browserslist-config-baseline تنظیم کنید:

module.exports = {   plugins: ['stylelint-browser-compat'],   rules: {     'plugin/browser-compat': [       true,       {         browserslist: ['extends browserslist-config-baseline'],       },     ],   }, }; 

Styelint اکنون CSS را که در حال حاضر بخشی از Baseline به طور گسترده در دسترس نیست، پرچم‌گذاری می‌کند:

لیستی از اخطارهای Stylelint که کدهای CSS را که در مرورگرهای قدیمی کار نمی‌کند برجسته می‌کند.

Styelint همچنین افزونه‌ای را ارائه می‌کند که به شما امکان می‌دهد مستقیماً قوانین Baseline را تنظیم کنید، اما اگر قبلاً از فهرست مرورگرها برای مدیریت پیکربندی خود استفاده می‌کنید، browserslist-config-baseline یک راه‌حل کشویی است.

نحوه مشارکت در browserslist-config-baseline

اگر می‌خواهید برای browserslist-config-baseline یک درخواست ویژگی ایجاد کنید، یک مشکل ایجاد کنید یا در مخزن GitHub درخواست کنید.

اگر می‌خواهید داده‌های مرورگر پایین‌دست بیشتری را ارائه کنید یا مشکل داده را گزارش کنید، یک مشکل یا یک درخواست کشش در مخزن baseline-browser-mapping ایجاد کنید.