From 093446315c54a1b17d8265daf5bcf0e320fd1a28 Mon Sep 17 00:00:00 2001 From: johnsoncodehk Date: Sun, 12 Feb 2023 11:51:19 +0800 Subject: [PATCH] fix: support nuxt preview without vite serving allow list close #2287 --- packages/preview/bin/nuxi.js | 25 ++++++++++++++----- .../preview/bin/nuxi/configExtraContent.ts | 2 +- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/packages/preview/bin/nuxi.js b/packages/preview/bin/nuxi.js index ced5ebdc8..e34ad1d1e 100755 --- a/packages/preview/bin/nuxi.js +++ b/packages/preview/bin/nuxi.js @@ -10,12 +10,25 @@ const jsConfigPath = path.resolve(workspace, 'nuxt.config.js'); const tsConfigPath = path.resolve(workspace, 'nuxt.config.ts'); fs.readFileSync = (...args) => { - if (args[0] === jsConfigPath || args[0] === tsConfigPath) { - let configExtraContent = readFileSync(path.resolve(__dirname, 'nuxi', 'configExtraContent.ts'), { encoding: 'utf8' }); - configExtraContent = configExtraContent.replace("'{PLUGIN_PATH}'", JSON.stringify(path.resolve(__dirname, 'nuxi', 'plugin.ts'))); - return readFileSync(...args) + configExtraContent; - } - return readFileSync(...args); + if (args[0] === jsConfigPath || args[0] === tsConfigPath) { + const configExtraContent = readFileSync(path.resolve(__dirname, 'nuxi', 'configExtraContent.ts'), { encoding: 'utf8' }); + return readFileSync(...args) + configExtraContent; + } + return readFileSync(...args); }; +createNuxtPlugin(); + import('file://' + nuxiBinPath); + +function createNuxtPlugin() { + + if (!fs.existsSync(path.resolve(workspace, 'node_modules', '.volar'))) { + fs.mkdirSync(path.resolve(workspace, 'node_modules', '.volar')); + } + + const proxyConfigPath = path.resolve(workspace, 'node_modules', '.volar', 'nuxt.plugin.ts'); + const pluginContent = fs.readFileSync(path.resolve(__dirname, 'nuxi', 'plugin.ts'), { encoding: 'utf8' }); + + fs.writeFileSync(proxyConfigPath, pluginContent); +} diff --git a/packages/preview/bin/nuxi/configExtraContent.ts b/packages/preview/bin/nuxi/configExtraContent.ts index 05c9deb01..df21ff2b0 100644 --- a/packages/preview/bin/nuxi/configExtraContent.ts +++ b/packages/preview/bin/nuxi/configExtraContent.ts @@ -27,7 +27,7 @@ module.exports.default.vue.compilerOptions.nodeTransforms.push( if (!module.exports.default.plugins) module.exports.default.plugins = []; -module.exports.default.plugins.push({ src: '{PLUGIN_PATH}', ssr: false }); +module.exports.default.plugins.push({ src: './node_modules/.volar/nuxt.plugin.ts', ssr: false }); function addEvent(node, name: string, exp: string) { node.props.push({