Skip to content

آپشن‌های SSR

آپشن‌های این بخش هم در حالت توسعه (dev) و هم در مرحله ساخت (build) اعمال خواهند شد،مگر اینکه خلاف آن ذکر شده باشد.

ssr.external

وابستگی‌های مشخص‌شده و وابستگی‌های وابسته به آن‌ها را برای SSR به حالت externalize در می‌آورد (مستقل کردن یا خارج کردن یک وابستگی از باندل اصلی). به‌طور پیش‌فرض، همه وابستگی‌ها به‌جز وابستگی‌های لینک‌شده (برای HMR) externalize می‌شوند. اگر می‌خواهید وابستگی لینک‌شده‌ای را نیز externalize کنید، می‌توانید نام آن را در این آپشن مشخص کنید.

اگر true باشد، تمام وابستگی‌ها از جمله وابستگی‌های لینک‌شده externalized می‌شوند.

توجه کنید که وابستگی‌هایی که به‌طور مشخص و صریح لیست شده‌اند (با استفاده از تایپ string[]‎) در هر حالتی اولویت دارند، حتی اگر در ssr.noExternal (با هر تایپی) نیز تعریف شده باشند.

ssr.noExternal

  • تایپ: string | RegExp | (string | RegExp)[] | true
  • مرتبط: SSR Externals

از مستقل شدن (externalized) وابستگی‌های فهرست‌شده برای SSR جلوگیری کنید، زیرا آن‌ها در مرحله ساخت (build) باندل خواهند شد. به‌طور پیش‌فرض، فقط وابستگی‌های لینک‌شده (linked) مستقل نمی‌شوند (برای HMR). اگر ترجیح می‌دهید که وابستگی‌های لینک‌شده نیز externalized شوند (مستقل کردن یا خارج کردن یک وابستگی از باندل اصلی)، می‌توانید نام آن‌ها را به گزینه ssr.external اضافه کنید.

اگر true باشد، هیچ وابستگی‌ای مستقل (externalized) نخواهد شد. با این حال، وابستگی‌هایی که به‌طور صریح در ssr.external (با استفاده از تایپ string[]‎) فهرست شده‌اند، می‌توانند اولویت داشته باشند و همچنان externalized شوند. اگر ssr.target: 'node' تنظیم شده باشد، ماژول‌های داخلی Node.js نیز به‌طور پیش‌فرض externalized خواهند شد.

توجه داشته باشید که اگر هر دو گزینه ssr.noExternal: true و ssr.external: true کانفیگ شده باشند، ssr.noExternal اولویت دارد و هیچ وابستگی‌ای مستقل (externalized) نخواهد شد.

ssr.target

  • تایپ: 'node' | 'webworker'
  • پیش‌فرض: node

بیلد target برای سرور SSR.

ssr.resolve.conditions

  • تایپ: string[]‎
  • پیش‌فرض: ['module', 'node', 'development|production'] (defaultServerConditions) (['module', 'browser', 'development|production'] (defaultClientConditions) برای ssr.target === 'webworker')
  • مرتبط: Resolve Conditions

این شرایط در مسیر پلاگین‌ها استفاده می‌شوند و فقط بر وابستگی‌های non-externalized در زمان ساخت SSR تأثیر می‌گذارند. برای تأثیرگذاری بر ایمپورت های externalized، از ssr.resolve.externalConditions استفاده کنید.

ssr.resolve.externalConditions

  • تایپ: string[]‎
  • پیش‌فرض: ['node']

شرایطی که در هنگام ایمپورت SSR (شامل ssrLoadModule) برای وابستگی‌های مستقیم externalized (وابستگی‌های خارجی که توسط Vite ایمپورت شده‌اند) اعمال می‌شوند.

نکته

هنگام استفاده از این آپشن، مطمئن شوید که Node را با flag --conditions وبا مقادیر یکسان در هر دو حالت dev و build اجرا کنید تا رفتار یکسانی داشته باشید.

برای مثال، وقتی ['node', 'custom'] را تنظیم می‌کنید، باید در حالت dev دستور NODE_OPTIONS='--conditions custom' vite و پس از بیلد دستور NODE_OPTIONS="--conditions custom" node ./dist/server.js را اجرا کنید.

ssr.resolve.mainFields

  • تایپ: string[]‎
  • پیش‌فرض: ['module', 'jsnext:main', 'jsnext']

فهرستی از فیلدهای package.json که هنگام تشخیص entry pointهای یک پکیج بررسی می‌شوند. توجه داشته باشید که این گزینه نسبت به اکسپورت شرطی که از فیلد exports شناسایی می‌شود,اولویت کم‌تری دارد : اگر entry point با موفقیت از exports تشخیص داده شود، فیلد main نادیده گرفته خواهد شد. این تنظیم فقط بر وابستگی‌های غیرمستقل (non-externalized) تأثیر می‌گذارد.

تحت مجوز MIT منتشر شده. (ce3c5f98)