From a45fa41cb683f1e19e86ac4a0e0ab1a976a13d02 Mon Sep 17 00:00:00 2001 From: Dario Merz Date: Thu, 5 May 2022 16:16:00 +0200 Subject: [PATCH 1/4] fix: check if virtual: import is handled via nuxt & otherwise return nothing Avoids rollup error `plugin load hook should return a string, a { code, map } object, or nothing/null` when using (custom) virtual imports. --- packages/vite/src/plugins/virtual.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/vite/src/plugins/virtual.ts b/packages/vite/src/plugins/virtual.ts index 748a0928c06..ee737557a87 100644 --- a/packages/vite/src/plugins/virtual.ts +++ b/packages/vite/src/plugins/virtual.ts @@ -37,9 +37,11 @@ export default function virtual (vfs: Record): Plugin { load (id) { if (!id.startsWith(PREFIX)) { return null } const idNoPrefix = id.slice(PREFIX.length) - return { - code: vfs[idNoPrefix], - map: null + if (vfs[idNoPrefix]) { + return { + code: vfs[idNoPrefix], + map: null + } } } } From 66cb90aea3aac2a32adf6d5a075fa77cd2a33de6 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 May 2022 12:17:46 +0100 Subject: [PATCH 2/4] Update packages/vite/src/plugins/virtual.ts --- packages/vite/src/plugins/virtual.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/plugins/virtual.ts b/packages/vite/src/plugins/virtual.ts index ee737557a87..5adddaab121 100644 --- a/packages/vite/src/plugins/virtual.ts +++ b/packages/vite/src/plugins/virtual.ts @@ -37,7 +37,7 @@ export default function virtual (vfs: Record): Plugin { load (id) { if (!id.startsWith(PREFIX)) { return null } const idNoPrefix = id.slice(PREFIX.length) - if (vfs[idNoPrefix]) { + if (!(idNoPrefix in vfs)) { return { code: vfs[idNoPrefix], map: null From 113175d749f6980df0cf105ac217d3f7cda79548 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 May 2022 12:18:21 +0100 Subject: [PATCH 3/4] Update packages/vite/src/plugins/virtual.ts --- packages/vite/src/plugins/virtual.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/plugins/virtual.ts b/packages/vite/src/plugins/virtual.ts index 5adddaab121..c1982e54689 100644 --- a/packages/vite/src/plugins/virtual.ts +++ b/packages/vite/src/plugins/virtual.ts @@ -37,7 +37,7 @@ export default function virtual (vfs: Record): Plugin { load (id) { if (!id.startsWith(PREFIX)) { return null } const idNoPrefix = id.slice(PREFIX.length) - if (!(idNoPrefix in vfs)) { + if (idNoPrefix in vfs) { return { code: vfs[idNoPrefix], map: null From 804dba48fe4c1cb7d5978362cb85cccea9803e45 Mon Sep 17 00:00:00 2001 From: Daniel Roe Date: Fri, 6 May 2022 12:25:14 +0100 Subject: [PATCH 4/4] fix: use `virtual:nuxt: as prefix (for safer avoidance of collisions) --- packages/vite/src/plugins/virtual.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/vite/src/plugins/virtual.ts b/packages/vite/src/plugins/virtual.ts index c1982e54689..f1c2ff99966 100644 --- a/packages/vite/src/plugins/virtual.ts +++ b/packages/vite/src/plugins/virtual.ts @@ -1,7 +1,7 @@ import { dirname, isAbsolute, join, resolve } from 'pathe' import type { Plugin } from 'rollup' -const PREFIX = 'virtual:' +const PREFIX = 'virtual:nuxt:' export default function virtual (vfs: Record): Plugin { const extensions = ['', '.ts', '.vue', '.mjs', '.cjs', '.js', '.json']