提交 cfb9ca61 编写于 作者: fxy060608's avatar fxy060608

fix(cli): vue plugin

上级 0fd6dd30
...@@ -42,13 +42,13 @@ function uniMainJsPlugin() { ...@@ -42,13 +42,13 @@ function uniMainJsPlugin() {
} }
exports.uniMainJsPlugin = uniMainJsPlugin; exports.uniMainJsPlugin = uniMainJsPlugin;
function createApp(code) { 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) { 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) { 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) { function createSSRServerApp(code) {
return code; return code;
......
...@@ -38,21 +38,21 @@ export function uniMainJsPlugin() { ...@@ -38,21 +38,21 @@ export function uniMainJsPlugin() {
} }
function createApp(code: string) { 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', 'createSSRApp',
'createVueApp as createSSRApp' 'createVueApp as createSSRApp'
)}` )}`
} }
function createLegacyApp(code: string) { 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', 'createApp',
'createVueApp' 'createVueApp'
)}` )}`
} }
function createSSRClientApp(code: string) { 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) { function createSSRServerApp(code: string) {
......
...@@ -2,8 +2,8 @@ import path from 'path' ...@@ -2,8 +2,8 @@ import path from 'path'
import { Plugin, UserConfig } from 'vite' import { Plugin, UserConfig } from 'vite'
import { import {
initPreContext, // initPreContext,
normalizePath, // normalizePath,
parseManifestJsonOnce, parseManifestJsonOnce,
} from '@dcloudio/uni-cli-shared' } from '@dcloudio/uni-cli-shared'
...@@ -21,23 +21,20 @@ import { ...@@ -21,23 +21,20 @@ import {
initPluginVueOptions, initPluginVueOptions,
} from '../vue' } from '../vue'
function normalizeRoot(config: UserConfig) { // function normalizeRoot(config: UserConfig) {
return normalizePath(config.root ? path.resolve(config.root) : process.cwd()) // 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( export function createConfig(
options: VitePluginUniResolvedOptions, options: VitePluginUniResolvedOptions,
uniPlugins: Plugin[] uniPlugins: Plugin[]
): Plugin['config'] { ): Plugin['config'] {
return (config, env) => { return (config, env) => {
options.command = env.command 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 let base = config.base
if (!base) { if (!base) {
...@@ -48,12 +45,14 @@ export function createConfig( ...@@ -48,12 +45,14 @@ export function createConfig(
base = '/' base = '/'
} }
options.base = base! options.base = base!
// TODO 似乎没必要
options.vueOptions = initPluginVueOptions(options, uniPlugins) options.vueOptions = initPluginVueOptions(options, uniPlugins)
options.vueJsxOptions = initPluginVueJsxOptions(options) options.vueJsxOptions = initPluginVueJsxOptions(options)
options.viteLegacyOptions = initPluginViteLegacyOptions(options) options.viteLegacyOptions = initPluginViteLegacyOptions(options)
return { return {
base, base,
root: process.env.VITE_ROOT_DIR,
publicDir: config.publicDir || false, publicDir: config.publicDir || false,
define: createDefine(options), define: createDefine(options),
resolve: createResolve(options, config), resolve: createResolve(options, config),
......
...@@ -2,7 +2,6 @@ import debug from 'debug' ...@@ -2,7 +2,6 @@ import debug from 'debug'
import { extend } from '@vue/shared' import { extend } from '@vue/shared'
import { Plugin, ResolvedConfig } from 'vite' import { Plugin, ResolvedConfig } from 'vite'
import { FilterPattern } from '@rollup/pluginutils' import { FilterPattern } from '@rollup/pluginutils'
import vue from '@vitejs/plugin-vue'
import { COMMON_EXCLUDE } from '@dcloudio/uni-cli-shared' import { COMMON_EXCLUDE } from '@dcloudio/uni-cli-shared'
...@@ -47,7 +46,6 @@ export function initPlugins( ...@@ -47,7 +46,6 @@ export function initPlugins(
) { ) {
const command = config.command const command = config.command
const plugins = config.plugins as Plugin[] const plugins = config.plugins as Plugin[]
addPlugin(plugins, vue(options.vueOptions), 'vite:uni', 'pre')
addPlugin(plugins, uniResolveIdPlugin(options), 'vite:resolve', 'pre') addPlugin(plugins, uniResolveIdPlugin(options), 'vite:resolve', 'pre')
......
...@@ -3,15 +3,17 @@ import { Plugin, ResolvedConfig, ViteDevServer } from 'vite' ...@@ -3,15 +3,17 @@ import { Plugin, ResolvedConfig, ViteDevServer } from 'vite'
import { Options as VueOptions } from '@vitejs/plugin-vue' import { Options as VueOptions } from '@vitejs/plugin-vue'
import { Options as ViteLegacyOptions } from '@vitejs/plugin-legacy' import { Options as ViteLegacyOptions } from '@vitejs/plugin-legacy'
import { VueJSXPluginOptions } from '@vue/babel-plugin-jsx' import { VueJSXPluginOptions } from '@vue/babel-plugin-jsx'
import VueJsxPlugin from '@vitejs/plugin-vue-jsx' import vuePlugin from '@vitejs/plugin-vue'
import ViteLegacyPlugin from '@vitejs/plugin-legacy' 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 { createConfig } from './config'
import { createConfigResolved } from './configResolved' import { createConfigResolved } from './configResolved'
import { createConfigureServer } from './configureServer' import { createConfigureServer } from './configureServer'
import { initExtraPlugins } from './utils' import { initExtraPlugins } from './utils'
import { initPluginVueOptions } from './vue'
const debugUni = debug('vite:uni:plugin') const debugUni = debug('vite:uni:plugin')
...@@ -62,6 +64,12 @@ export default function uniPlugin( ...@@ -62,6 +64,12 @@ export default function uniPlugin(
command: 'serve', command: 'serve',
platform: 'h5', 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[] = [] const plugins: Plugin[] = []
if (createViteLegacyPlugin && options.viteLegacyOptions !== false) { if (createViteLegacyPlugin && options.viteLegacyOptions !== false) {
...@@ -75,6 +83,7 @@ export default function uniPlugin( ...@@ -75,6 +83,7 @@ export default function uniPlugin(
if (createVueJsxPlugin && options.vueJsxOptions !== false) { if (createVueJsxPlugin && options.vueJsxOptions !== false) {
plugins.push(createVueJsxPlugin(options.vueJsxOptions)) plugins.push(createVueJsxPlugin(options.vueJsxOptions))
} }
const uniPlugins = initExtraPlugins( const uniPlugins = initExtraPlugins(
process.env.UNI_CLI_CONTEXT || process.cwd(), process.env.UNI_CLI_CONTEXT || process.cwd(),
(process.env.UNI_PLATFORM as UniApp.PLATFORM) || 'h5' (process.env.UNI_PLATFORM as UniApp.PLATFORM) || 'h5'
...@@ -87,5 +96,8 @@ export default function uniPlugin( ...@@ -87,5 +96,8 @@ export default function uniPlugin(
configureServer: createConfigureServer(options), configureServer: createConfigureServer(options),
}) })
plugins.push(...uniPlugins) plugins.push(...uniPlugins)
plugins.unshift(vuePlugin(initPluginVueOptions(options, uniPlugins)))
return plugins return plugins
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册