this.environment
در هوکها
بازخورد
به ما در Environment API feedback discussion بازخورد دهید
پیش از Vite 6، فقط دو محیط موجود بود: client
و ssr
. یک آرگومان هوک پلاگین options.ssr
در resolveId
، load
و transform
به نویسندگان پلاگین این امکان را میداد که هنگام پردازش ماژولها در هوکهای پلاگین، این دو محیط را از هم تمایز دهند. در Vite 6، یک برنامه Vite میتواند هر تعداد محیط نامگذاریشده را طبق نیاز تعریف کند. ما this.environment
را در زمینه پلاگین معرفی میکنیم تا با محیط ماژول جاری در هوکها تعامل داشته باشیم.
دامنه تاثیر: نویسندگان پلاگین Vite
منسوخشدن در آینده
this.environment
در نسخه v6.0
معرفیشد. منسوخ شدن options.ssr
برای نسخه v7.0
برنامهریزی شده است. در آن زمان، شروع به توصیه به مهاجرت پلاگینها به استفاده از API جدید خواهیم کرد. برای شناسایی استفاده از این ویژگی، میتوانید future.removePluginHookSsrArgument
را در تنظیمات Vite خود به مقدار "warn"
تنظیم کنید.
انگیزه
this.environment
نه تنها به پیادهسازی هوک پلاگین اجازه میدهد که نام محیط جاری را بداند، بلکه دسترسی به گزینههای پیکربندی محیط، اطلاعات گراف ماژول، و خط لوله تبدیل (transform pipeline) را نیز فراهم میکند (environment.config
، environment.moduleGraph
، environment.transformRequest
). در دسترس بودن نمونه محیط در زمینه پلاگین به نویسندگان پلاگین این امکان را میدهد که از وابستگی به سرور توسعه کامل (که معمولاً از طریق هوک configureServer
در ابتدای راهاندازی کش میشود) جلوگیری کنند.
راهنمای مهاجرت
برای انجام یک مهاجرت سریع در پلاگینهای موجود، آرگومان options.ssr
را با this.environment.name !== 'client'
در هوکهای resolveId
، load
و transform
جایگزین کنید:
import { Plugin } from 'vite'
export function myPlugin(): Plugin {
return {
name: 'my-plugin',
resolveId(id, importer, options) {
const isSSR = options.ssr
const isSSR = this.environment.name !== 'client'
if (isSSR) {
// منطق خاص SSR
} else {
// منطق خاص Client
}
},
}
}
برای یک پیادهسازی پایدارتر در بلندمدت، هوک پلاگین باید به جای تکیه بر نام محیط، بهطور دقیق برای چندین محیط از گزینههای محیطی ریزدانه استفاده کند.