آپشنهای SSR
آپشنهای این بخش هم در حالت توسعه (dev
) و هم در مرحله ساخت (build
) اعمال خواهند شد،مگر اینکه خلاف آن ذکر شده باشد.
ssr.external
- تایپ:
string[] | true
- مرتبط: SSR Externals
وابستگیهای مشخصشده و وابستگیهای وابسته به آنها را برای 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) تأثیر میگذارد.