From 52bc78257c6d7ce6d6a7f6f1d4afbcf7b3e342ac Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 8 Aug 2022 13:18:54 +0200 Subject: [PATCH 1/7] fix(nuxt): add `serverDynamicImports` as experimental flag --- packages/schema/src/config/experimental.ts | 9 +++++++++ packages/vite/src/server.ts | 4 ++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 0c6709eb361..3a7b562a579 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -30,5 +30,14 @@ export default { * @see https://github.com/nuxt/framework/pull/5750 */ treeshakeClientOnly: false, + + /** + * Split server bundle into multiple chunks and dynamically import them + * + * Note: Enabling this flag can cause hydration issues in some platform. + * + * @see https://github.com/nuxt/framework/issues/6432 + */ + serverDynamicImports: false, } } diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index 99f58330d20..37b81bb184f 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -80,7 +80,7 @@ export async function buildServer (ctx: ViteBuildContext) { entryFileNames: 'server.mjs', preferConst: true, // TODO: https://github.com/vitejs/vite/pull/8641 - inlineDynamicImports: false, + inlineDynamicImports: !ctx.nuxt.options.experimental.serverDynamicImports, format: 'module' }, onwarn (warning, rollupWarn) { @@ -112,7 +112,7 @@ export async function buildServer (ctx: ViteBuildContext) { })) } - // Hotfix for https://github.com/nuxt/framework/issues/6204 + // https://github.com/nuxt/framework/issues/6432 if (provider === 'netlify') { (serverConfig.build.rollupOptions.output as OutputOptions).inlineDynamicImports = true } From 534d911f61bd32ec9802cdcb272b64d725cdda68 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 8 Aug 2022 13:22:57 +0200 Subject: [PATCH 2/7] remove unused std-env --- packages/vite/package.json | 1 - yarn.lock | 1 - 2 files changed, 2 deletions(-) diff --git a/packages/vite/package.json b/packages/vite/package.json index 1a526018975..b6e92d920d1 100644 --- a/packages/vite/package.json +++ b/packages/vite/package.json @@ -46,7 +46,6 @@ "postcss-url": "^10.1.3", "rollup": "^2.77.2", "rollup-plugin-visualizer": "^5.7.1", - "std-env": "^3.1.1", "ufo": "^0.8.5", "unplugin": "^0.8.1", "vite": "~3.0.4", diff --git a/yarn.lock b/yarn.lock index bb2252e1b9a..475dc1f4156 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1886,7 +1886,6 @@ __metadata: postcss-url: ^10.1.3 rollup: ^2.77.2 rollup-plugin-visualizer: ^5.7.1 - std-env: ^3.1.1 ufo: ^0.8.5 unbuild: latest unplugin: ^0.8.1 From 4a484afe513ffa7d1c85c01f97dbd54b58dc8ad0 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 8 Aug 2022 13:25:04 +0200 Subject: [PATCH 3/7] remove netlify workaround (missing commit) --- packages/vite/src/server.ts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index 37b81bb184f..440da7ef7a2 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -2,11 +2,9 @@ import { resolveTSConfig } from 'pkg-types' import { resolve } from 'pathe' import * as vite from 'vite' import vuePlugin from '@vitejs/plugin-vue' -import { provider } from 'std-env' import viteJsxPlugin from '@vitejs/plugin-vue-jsx' import { logger, resolveModule } from '@nuxt/kit' import { joinURL, withoutLeadingSlash, withTrailingSlash } from 'ufo' -import type { OutputOptions } from 'rollup' import { ViteBuildContext, ViteOptions } from './vite' import { wpfs } from './utils/wpfs' import { cacheDirPlugin } from './plugins/cache-dir' @@ -112,11 +110,6 @@ export async function buildServer (ctx: ViteBuildContext) { })) } - // https://github.com/nuxt/framework/issues/6432 - if (provider === 'netlify') { - (serverConfig.build.rollupOptions.output as OutputOptions).inlineDynamicImports = true - } - await ctx.nuxt.callHook('vite:extendConfig', serverConfig, { isClient: false, isServer: true }) const onBuild = () => ctx.nuxt.callHook('build:resources', wpfs) From f5c363e35abe5ea63e2598e43946679148d6cc45 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 8 Aug 2022 14:33:40 +0200 Subject: [PATCH 4/7] try webpack --- playground/nuxt.config.ts | 4 ++++ playground/pages/index.vue | 5 +++++ 2 files changed, 9 insertions(+) create mode 100644 playground/pages/index.vue diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index 8b0aa104adf..b4e7d2d7be0 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -1,4 +1,8 @@ import { defineNuxtConfig } from 'nuxt' export default defineNuxtConfig({ + builder: 'webpack', + experimental: { + // serverDynamicImports: true + } }) diff --git a/playground/pages/index.vue b/playground/pages/index.vue new file mode 100644 index 00000000000..1da64f269c6 --- /dev/null +++ b/playground/pages/index.vue @@ -0,0 +1,5 @@ + From 3e9972594d38d300d6adcdf4e68b86a1b87a8126 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 8 Aug 2022 14:40:12 +0200 Subject: [PATCH 5/7] rename experiment to viteServerDynamicImports --- packages/vite/src/server.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/server.ts b/packages/vite/src/server.ts index 440da7ef7a2..3ca723a5d23 100644 --- a/packages/vite/src/server.ts +++ b/packages/vite/src/server.ts @@ -78,7 +78,7 @@ export async function buildServer (ctx: ViteBuildContext) { entryFileNames: 'server.mjs', preferConst: true, // TODO: https://github.com/vitejs/vite/pull/8641 - inlineDynamicImports: !ctx.nuxt.options.experimental.serverDynamicImports, + inlineDynamicImports: !ctx.nuxt.options.experimental.viteServerDynamicImports, format: 'module' }, onwarn (warning, rollupWarn) { From 3b6bc909c1bbeba70102dfdba1597ab5af26d637 Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 8 Aug 2022 15:14:23 +0200 Subject: [PATCH 6/7] update schema --- packages/schema/src/config/experimental.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/schema/src/config/experimental.ts b/packages/schema/src/config/experimental.ts index 3a7b562a579..d1507afa66f 100644 --- a/packages/schema/src/config/experimental.ts +++ b/packages/schema/src/config/experimental.ts @@ -38,6 +38,6 @@ export default { * * @see https://github.com/nuxt/framework/issues/6432 */ - serverDynamicImports: false, + viteServerDynamicImports: false, } } From 827e07acaca20f616c1338967e1c95e17404a89f Mon Sep 17 00:00:00 2001 From: Pooya Parsa Date: Mon, 8 Aug 2022 15:25:31 +0200 Subject: [PATCH 7/7] revert playground --- playground/nuxt.config.ts | 4 ---- playground/pages/index.vue | 5 ----- 2 files changed, 9 deletions(-) delete mode 100644 playground/pages/index.vue diff --git a/playground/nuxt.config.ts b/playground/nuxt.config.ts index b4e7d2d7be0..8b0aa104adf 100644 --- a/playground/nuxt.config.ts +++ b/playground/nuxt.config.ts @@ -1,8 +1,4 @@ import { defineNuxtConfig } from 'nuxt' export default defineNuxtConfig({ - builder: 'webpack', - experimental: { - // serverDynamicImports: true - } }) diff --git a/playground/pages/index.vue b/playground/pages/index.vue deleted file mode 100644 index 1da64f269c6..00000000000 --- a/playground/pages/index.vue +++ /dev/null @@ -1,5 +0,0 @@ -