From e60d22aa75a3dbde75a773fae6f037baa783f474 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Wed, 29 Sep 2021 12:47:36 +0100 Subject: [PATCH] fix: workaround for `vue` 3.2.18+ esm bundle issue and revert #566 (#578) (#578) --- src/build.config.ts | 1 - src/package.json | 1 - src/rollup/config.ts | 7 +++++++ src/runtime/app/vue3.ts | 2 +- 4 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/build.config.ts b/src/build.config.ts index 00933ce6b1..8f682d7fc7 100644 --- a/src/build.config.ts +++ b/src/build.config.ts @@ -17,7 +17,6 @@ export default defineBuildConfig({ 'ora', 'vue-bundle-renderer', 'vue-server-renderer', - '@vue/server-renderer', 'vue' ] }) diff --git a/src/package.json b/src/package.json index 13a88f9a34..6c0b108646 100644 --- a/src/package.json +++ b/src/package.json @@ -28,7 +28,6 @@ "@rollup/pluginutils": "^4.1.1", "@types/jsdom": "^16.2.13", "@vercel/nft": "^0.15.0", - "@vue/server-renderer": "^3.2.19", "archiver": "^5.3.0", "chalk": "^4.1.2", "chokidar": "^3.5.2", diff --git a/src/rollup/config.ts b/src/rollup/config.ts index 2c4f90019a..553b5e506b 100644 --- a/src/rollup/config.ts +++ b/src/rollup/config.ts @@ -64,6 +64,13 @@ export const getRollupConfig = (nitroContext: NitroContext) => { env.polyfill.push('source-map-support/register.js') } + // TODO: #590 + if (nitroContext._nuxt.majorVersion === 3) { + env.alias['vue/server-renderer'] = 'vue/server-renderer' + env.alias['vue/compiler-sfc'] = 'vue/compiler-sfc' + env.alias.vue = require.resolve(`vue/dist/vue.cjs${nitroContext._nuxt.dev ? '' : '.prod'}.js`) + } + const buildServerDir = join(nitroContext._nuxt.buildDir, 'dist/server') const runtimeAppDir = join(nitroContext._internal.runtimeDir, 'app') diff --git a/src/runtime/app/vue3.ts b/src/runtime/app/vue3.ts index e76354bf15..03cea5e7c3 100644 --- a/src/runtime/app/vue3.ts +++ b/src/runtime/app/vue3.ts @@ -1,5 +1,5 @@ // @ts-ignore -import { renderToString as render } from '@vue/server-renderer' +import { renderToString as render } from 'vue/server-renderer' export const renderToString: typeof render = (...args) => { return render(...args).then(result => `
${result}
`)