From f7d1c36dde8e6e6e4eb68ebea1eeb6344d0984d1 Mon Sep 17 00:00:00 2001 From: Josh Larson Date: Mon, 16 Aug 2021 10:34:51 -0500 Subject: [PATCH] chore: use `ssr.noExternal = true` rather than new option --- docs/config/index.md | 11 ++--------- docs/guide/ssr.md | 2 +- packages/playground/ssr-webworker/vite.config.js | 2 +- packages/vite/src/node/config.ts | 3 +-- packages/vite/src/node/plugins/resolve.ts | 6 +++--- packages/vite/src/node/ssr/ssrExternal.ts | 2 +- 6 files changed, 9 insertions(+), 17 deletions(-) diff --git a/docs/config/index.md b/docs/config/index.md index fbbbc84a0424a8..e7043a5145cc30 100644 --- a/docs/config/index.md +++ b/docs/config/index.md @@ -741,9 +741,9 @@ SSR options may be adjusted in minor releases. ### ssr.noExternal -- **Type:** `string | RegExp | (string | RegExp)[]` +- **Type:** `string | RegExp | (string | RegExp)[] | true` - Prevent listed dependencies from being externalized for SSR. + Prevent listed dependencies from being externalized for SSR. If `true`, no dependencies are externalized. ### ssr.target @@ -751,10 +751,3 @@ SSR options may be adjusted in minor releases. - **Default:** `node` Build target for the SSR server. - -### ssr.bundleAll - -- **Type:** `boolean` -- **Default:** `false` - - Bundles all dependencies into a single JavaScript file. diff --git a/docs/guide/ssr.md b/docs/guide/ssr.md index ae8bdf01addfb9..3d65723a6bfc58 100644 --- a/docs/guide/ssr.md +++ b/docs/guide/ssr.md @@ -254,7 +254,7 @@ The default target for the SSR build is a node environment, but you can also run ## SSR Bundle -In some cases like `webworker` runtimes, you might want to bundle your SSR build into a single JavaScript file. You can enable this behavior by setting `ssr.bundleAll` to `true`. This will do two things: +In some cases like `webworker` runtimes, you might want to bundle your SSR build into a single JavaScript file. You can enable this behavior by setting `ssr.noExternal` to `true`. This will do two things: - Treat all dependencies as `noExternal` - Throw an error if any Node.js built-ins are imported diff --git a/packages/playground/ssr-webworker/vite.config.js b/packages/playground/ssr-webworker/vite.config.js index a2646b067f04d4..d0e80179498685 100644 --- a/packages/playground/ssr-webworker/vite.config.js +++ b/packages/playground/ssr-webworker/vite.config.js @@ -7,6 +7,6 @@ module.exports = { }, ssr: { target: 'webworker', - bundleAll: true + noExternal: true } } diff --git a/packages/vite/src/node/config.ts b/packages/vite/src/node/config.ts index 7c302c95938d02..cd1d801fb8388d 100644 --- a/packages/vite/src/node/config.ts +++ b/packages/vite/src/node/config.ts @@ -187,14 +187,13 @@ export type SSRTarget = 'node' | 'webworker' export interface SSROptions { external?: string[] - noExternal?: string | RegExp | (string | RegExp)[] + noExternal?: string | RegExp | (string | RegExp)[] | true /** * Define the target for the ssr build. The browser field in package.json * is ignored for node but used if webworker is the target * Default: 'node' */ target?: SSRTarget - bundleAll?: boolean } export interface InlineConfig extends UserConfig { diff --git a/packages/vite/src/node/plugins/resolve.ts b/packages/vite/src/node/plugins/resolve.ts index baab6335ae0777..dfaa270e79050f 100644 --- a/packages/vite/src/node/plugins/resolve.ts +++ b/packages/vite/src/node/plugins/resolve.ts @@ -78,7 +78,7 @@ export function resolvePlugin(baseOptions: InternalResolveOptions): Plugin { } let server: ViteDevServer | undefined - const { target: ssrTarget } = ssrConfig ?? {} + const { target: ssrTarget, noExternal: ssrNoExternal } = ssrConfig ?? {} return { name: 'vite:resolve', @@ -226,7 +226,7 @@ export function resolvePlugin(baseOptions: InternalResolveOptions): Plugin { // externalize if building for SSR, otherwise redirect to empty module if (isBuiltin(id)) { if (ssr) { - if (ssrConfig?.bundleAll) { + if (ssrNoExternal === true) { let message = `Cannot bundle Node.js built-in "${id}"` if (importer) { message += ` imported from "${path.relative( @@ -234,7 +234,7 @@ export function resolvePlugin(baseOptions: InternalResolveOptions): Plugin { importer )}"` } - message += `. Consider disabling ssr.bundleAll or remove the built-in dependency.` + message += `. Consider disabling ssr.noExternal or remove the built-in dependency.` this.error(message) } diff --git a/packages/vite/src/node/ssr/ssrExternal.ts b/packages/vite/src/node/ssr/ssrExternal.ts index 61a614e8358c94..4c3b40e1915a9a 100644 --- a/packages/vite/src/node/ssr/ssrExternal.ts +++ b/packages/vite/src/node/ssr/ssrExternal.ts @@ -18,7 +18,7 @@ export function resolveSSRExternal( ssrExternals: Set = new Set(), seen: Set = new Set() ): string[] { - if (config.ssr?.bundleAll) { + if (config.ssr?.noExternal === true) { return [] }