diff --git a/packages/plugin-rsc/src/plugin.ts b/packages/plugin-rsc/src/plugin.ts index d129c1c4..ccaea4e8 100644 --- a/packages/plugin-rsc/src/plugin.ts +++ b/packages/plugin-rsc/src/plugin.ts @@ -1007,10 +1007,9 @@ import.meta.hot.on("rsc:update", () => { ...vitePluginRscMinimal(rscPluginOptions, manager), ...vitePluginFindSourceMapURL(), ...vitePluginRscCss(rscPluginOptions, manager), - // TODO: delay validateImports option check after config - ...(rscPluginOptions.validateImports !== false - ? [validateImportPlugin()] - : []), + validateImportPlugin({ + apply: () => rscPluginOptions.validateImports !== false, + }), scanBuildStripPlugin({ manager }), ...cjsModuleRunnerPlugin(), ...globalAsyncLocalStoragePlugin(), diff --git a/packages/plugin-rsc/src/plugins/validate-import.ts b/packages/plugin-rsc/src/plugins/validate-import.ts index 3b40126e..aba27c8f 100644 --- a/packages/plugin-rsc/src/plugins/validate-import.ts +++ b/packages/plugin-rsc/src/plugins/validate-import.ts @@ -3,9 +3,12 @@ import type { Plugin } from 'vite' // https://github.com/vercel/next.js/blob/90f564d376153fe0b5808eab7b83665ee5e08aaf/packages/next/src/build/webpack-config.ts#L1249-L1280 // https://github.com/pcattori/vite-env-only/blob/68a0cc8546b9a37c181c0b0a025eb9b62dbedd09/src/deny-imports.ts // https://github.com/sveltejs/kit/blob/84298477a014ec471839adf7a4448d91bc7949e4/packages/kit/src/exports/vite/index.js#L513 -export function validateImportPlugin(): Plugin { +export function validateImportPlugin( + applyOptions: Pick, +): Plugin { return { name: 'rsc:validate-imports', + ...applyOptions, resolveId: { order: 'pre', async handler(source, importer, options) {