From cfb9ca61ed61db0c01738c3dbd4bb37fecd0c8ea Mon Sep 17 00:00:00 2001 From: fxy060608 Date: Fri, 23 Jul 2021 21:14:50 +0800 Subject: [PATCH] fix(cli): vue plugin --- packages/uni-h5-vite/dist/plugins/mainJs.js | 6 ++--- packages/uni-h5-vite/src/plugins/mainJs.ts | 6 ++--- packages/vite-plugin-uni/src/config/index.ts | 23 +++++++++---------- .../src/configResolved/plugins/index.ts | 2 -- packages/vite-plugin-uni/src/index.ts | 18 ++++++++++++--- 5 files changed, 32 insertions(+), 23 deletions(-) diff --git a/packages/uni-h5-vite/dist/plugins/mainJs.js b/packages/uni-h5-vite/dist/plugins/mainJs.js index a37c3d320..83e352f49 100644 --- a/packages/uni-h5-vite/dist/plugins/mainJs.js +++ b/packages/uni-h5-vite/dist/plugins/mainJs.js @@ -42,13 +42,13 @@ function uniMainJsPlugin() { } exports.uniMainJsPlugin = uniMainJsPlugin; function createApp(code) { - return `import { plugin } from '@dcloudio/uni-h5';createApp().app.use(plugin).mount("#app");${code.replace('createSSRApp', 'createVueApp as createSSRApp')}`; + return `import { plugin as __plugin } from '@dcloudio/uni-h5';createApp().app.use(__plugin).mount("#app");${code.replace('createSSRApp', 'createVueApp as createSSRApp')}`; } function createLegacyApp(code) { - return `import { plugin } from '@dcloudio/uni-h5';function createApp(rootComponent,rootProps){return createVueApp(rootComponent, rootProps).use(plugin)};${code.replace('createApp', 'createVueApp')}`; + return `import { plugin as __plugin } from '@dcloudio/uni-h5';function createApp(rootComponent,rootProps){return createVueApp(rootComponent, rootProps).use(__plugin)};${code.replace('createApp', 'createVueApp')}`; } function createSSRClientApp(code) { - return `import { plugin } from '@dcloudio/uni-h5';import { UNI_SSR, UNI_SSR_STORE } from '@dcloudio/uni-shared';const { app: __app, store: __store } = createApp();__app.use(plugin);__store && window[UNI_SSR] && window[UNI_SSR][UNI_SSR_STORE] && __store.replaceState(window[UNI_SSR][UNI_SSR_STORE]);__app.router.isReady().then(() => __app.mount("#app"));${code}`; + return `import { plugin as __plugin } from '@dcloudio/uni-h5';import { UNI_SSR, UNI_SSR_STORE } from '@dcloudio/uni-shared';const { app: __app, store: __store } = createApp();__app.use(__plugin);__store && window[UNI_SSR] && window[UNI_SSR][UNI_SSR_STORE] && __store.replaceState(window[UNI_SSR][UNI_SSR_STORE]);__app.router.isReady().then(() => __app.mount("#app"));${code}`; } function createSSRServerApp(code) { return code; diff --git a/packages/uni-h5-vite/src/plugins/mainJs.ts b/packages/uni-h5-vite/src/plugins/mainJs.ts index 30082de76..0db62eea5 100644 --- a/packages/uni-h5-vite/src/plugins/mainJs.ts +++ b/packages/uni-h5-vite/src/plugins/mainJs.ts @@ -38,21 +38,21 @@ export function uniMainJsPlugin() { } function createApp(code: string) { - return `import { plugin } from '@dcloudio/uni-h5';createApp().app.use(plugin).mount("#app");${code.replace( + return `import { plugin as __plugin } from '@dcloudio/uni-h5';createApp().app.use(__plugin).mount("#app");${code.replace( 'createSSRApp', 'createVueApp as createSSRApp' )}` } function createLegacyApp(code: string) { - return `import { plugin } from '@dcloudio/uni-h5';function createApp(rootComponent,rootProps){return createVueApp(rootComponent, rootProps).use(plugin)};${code.replace( + return `import { plugin as __plugin } from '@dcloudio/uni-h5';function createApp(rootComponent,rootProps){return createVueApp(rootComponent, rootProps).use(__plugin)};${code.replace( 'createApp', 'createVueApp' )}` } function createSSRClientApp(code: string) { - return `import { plugin } from '@dcloudio/uni-h5';import { UNI_SSR, UNI_SSR_STORE } from '@dcloudio/uni-shared';const { app: __app, store: __store } = createApp();__app.use(plugin);__store && window[UNI_SSR] && window[UNI_SSR][UNI_SSR_STORE] && __store.replaceState(window[UNI_SSR][UNI_SSR_STORE]);__app.router.isReady().then(() => __app.mount("#app"));${code}` + return `import { plugin as __plugin } from '@dcloudio/uni-h5';import { UNI_SSR, UNI_SSR_STORE } from '@dcloudio/uni-shared';const { app: __app, store: __store } = createApp();__app.use(__plugin);__store && window[UNI_SSR] && window[UNI_SSR][UNI_SSR_STORE] && __store.replaceState(window[UNI_SSR][UNI_SSR_STORE]);__app.router.isReady().then(() => __app.mount("#app"));${code}` } function createSSRServerApp(code: string) { diff --git a/packages/vite-plugin-uni/src/config/index.ts b/packages/vite-plugin-uni/src/config/index.ts index 03df426d3..09ea17d36 100644 --- a/packages/vite-plugin-uni/src/config/index.ts +++ b/packages/vite-plugin-uni/src/config/index.ts @@ -2,8 +2,8 @@ import path from 'path' import { Plugin, UserConfig } from 'vite' import { - initPreContext, - normalizePath, + // initPreContext, + // normalizePath, parseManifestJsonOnce, } from '@dcloudio/uni-cli-shared' @@ -21,23 +21,20 @@ import { initPluginVueOptions, } from '../vue' -function normalizeRoot(config: UserConfig) { - return normalizePath(config.root ? path.resolve(config.root) : process.cwd()) -} +// function normalizeRoot(config: UserConfig) { +// return normalizePath(config.root ? path.resolve(config.root) : process.cwd()) +// } + +// function normalizeInputDir(config: UserConfig) { +// return process.env.UNI_INPUT_DIR || path.resolve(normalizeRoot(config), 'src') +// } -function normalizeInputDir(config: UserConfig) { - return process.env.UNI_INPUT_DIR || path.resolve(normalizeRoot(config), 'src') -} export function createConfig( options: VitePluginUniResolvedOptions, uniPlugins: Plugin[] ): Plugin['config'] { return (config, env) => { options.command = env.command - options.platform = (process.env.UNI_PLATFORM as UniApp.PLATFORM) || 'h5' - options.inputDir = normalizeInputDir(config) - - initPreContext(options.platform) let base = config.base if (!base) { @@ -48,12 +45,14 @@ export function createConfig( base = '/' } options.base = base! + // TODO 似乎没必要 options.vueOptions = initPluginVueOptions(options, uniPlugins) options.vueJsxOptions = initPluginVueJsxOptions(options) options.viteLegacyOptions = initPluginViteLegacyOptions(options) return { base, + root: process.env.VITE_ROOT_DIR, publicDir: config.publicDir || false, define: createDefine(options), resolve: createResolve(options, config), diff --git a/packages/vite-plugin-uni/src/configResolved/plugins/index.ts b/packages/vite-plugin-uni/src/configResolved/plugins/index.ts index 4f78ee427..5f9834f6a 100644 --- a/packages/vite-plugin-uni/src/configResolved/plugins/index.ts +++ b/packages/vite-plugin-uni/src/configResolved/plugins/index.ts @@ -2,7 +2,6 @@ import debug from 'debug' import { extend } from '@vue/shared' import { Plugin, ResolvedConfig } from 'vite' import { FilterPattern } from '@rollup/pluginutils' -import vue from '@vitejs/plugin-vue' import { COMMON_EXCLUDE } from '@dcloudio/uni-cli-shared' @@ -47,7 +46,6 @@ export function initPlugins( ) { const command = config.command const plugins = config.plugins as Plugin[] - addPlugin(plugins, vue(options.vueOptions), 'vite:uni', 'pre') addPlugin(plugins, uniResolveIdPlugin(options), 'vite:resolve', 'pre') diff --git a/packages/vite-plugin-uni/src/index.ts b/packages/vite-plugin-uni/src/index.ts index 557de52b7..3c3ec0f11 100644 --- a/packages/vite-plugin-uni/src/index.ts +++ b/packages/vite-plugin-uni/src/index.ts @@ -3,15 +3,17 @@ import { Plugin, ResolvedConfig, ViteDevServer } from 'vite' import { Options as VueOptions } from '@vitejs/plugin-vue' import { Options as ViteLegacyOptions } from '@vitejs/plugin-legacy' import { VueJSXPluginOptions } from '@vue/babel-plugin-jsx' -import VueJsxPlugin from '@vitejs/plugin-vue-jsx' -import ViteLegacyPlugin from '@vitejs/plugin-legacy' +import vuePlugin from '@vitejs/plugin-vue' +import type VueJsxPlugin from '@vitejs/plugin-vue-jsx' +import type ViteLegacyPlugin from '@vitejs/plugin-legacy' -import { initModuleAlias } from '@dcloudio/uni-cli-shared' +import { initModuleAlias, initPreContext } from '@dcloudio/uni-cli-shared' import { createConfig } from './config' import { createConfigResolved } from './configResolved' import { createConfigureServer } from './configureServer' import { initExtraPlugins } from './utils' +import { initPluginVueOptions } from './vue' const debugUni = debug('vite:uni:plugin') @@ -62,6 +64,12 @@ export default function uniPlugin( command: 'serve', platform: 'h5', } + + options.platform = (process.env.UNI_PLATFORM as UniApp.PLATFORM) || 'h5' + options.inputDir = process.env.UNI_INPUT_DIR + + initPreContext(options.platform) + const plugins: Plugin[] = [] if (createViteLegacyPlugin && options.viteLegacyOptions !== false) { @@ -75,6 +83,7 @@ export default function uniPlugin( if (createVueJsxPlugin && options.vueJsxOptions !== false) { plugins.push(createVueJsxPlugin(options.vueJsxOptions)) } + const uniPlugins = initExtraPlugins( process.env.UNI_CLI_CONTEXT || process.cwd(), (process.env.UNI_PLATFORM as UniApp.PLATFORM) || 'h5' @@ -87,5 +96,8 @@ export default function uniPlugin( configureServer: createConfigureServer(options), }) plugins.push(...uniPlugins) + + plugins.unshift(vuePlugin(initPluginVueOptions(options, uniPlugins))) + return plugins } -- GitLab