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

fix: setupApp,setupPage

上级 393322b1
......@@ -106,7 +106,7 @@ export function resolvePlugins(
uniEasycomPlugin(Object.assign(uniEasycomPluginOptions, options)),
'vite:vue'
)
addPlugin(plugins, uniPageVuePlugin({ command }), 'vite:vue')
addPlugin(plugins, uniPageVuePlugin(options), 'vite:vue')
addPlugin(plugins, uniJsonPlugin(options), 'vite:json', 'pre')
addPlugin(plugins, uniStaticPlugin(options, config), 'vite:asset', 'pre')
if (command === 'build') {
......
......@@ -13,7 +13,7 @@ export function uniMainJsPlugin(options: VitePluginUniResolvedOptions): Plugin {
transform(code, id) {
if (id === mainJsPath || id === mainTsPath) {
return {
code: `import { plugin, setupApp } from '@dcloudio/uni-h5';import '${pagesJsonJsPath}';function createApp(rootComponent,rootProps){rootComponent && setupApp(rootComponent);return createVueApp(rootComponent, rootProps).use(plugin)};${code.replace(
code: `import { plugin } from '@dcloudio/uni-h5';import '${pagesJsonJsPath}';function createApp(rootComponent,rootProps){return createVueApp(rootComponent, rootProps).use(plugin)};${code.replace(
'createApp',
'createVueApp'
)}`,
......
import fs from 'fs'
import { Plugin, ResolvedConfig } from 'vite'
import path from 'path'
import slash from 'slash'
import debug from 'debug'
import { Plugin } from 'vite'
import { parseVueRequest } from '@dcloudio/uni-cli-shared'
import { VitePluginUniResolvedOptions } from '../..'
export function uniPageVuePlugin({
command,
}: {
command: ResolvedConfig['command']
}): Plugin {
const debugPageVue = debug('uni:page-vue')
export function uniPageVuePlugin(
options: VitePluginUniResolvedOptions
): Plugin {
const appVuePath = slash(path.resolve(options.inputDir, 'App.vue'))
return {
name: 'vite:uni-page-vue',
load(id) {
if (command === 'build') {
if (options.command === 'build') {
const { filename, query } = parseVueRequest(id)
if (query.mpType === 'page') {
return fs.readFileSync(filename, 'utf8')
......@@ -18,9 +23,20 @@ export function uniPageVuePlugin({
}
},
transform(code, id) {
const { query } = parseVueRequest(id)
const { filename, query } = parseVueRequest(id)
if (filename === appVuePath && !query.vue) {
debugPageVue(filename)
return (
code +
`;import {setupApp} from '@dcloudio/uni-h5';setupApp(_sfc_main);`
)
}
if (query.mpType === 'page') {
return code + `;_sfc_main.mpType='page'`
debugPageVue(filename)
return (
code +
`;import {setupPage} from '@dcloudio/uni-h5';setupPage(_sfc_main);`
)
}
},
}
......
......@@ -67,7 +67,7 @@ import { extend } from '@vue/shared'
import { ${
config.define!.__UNI_FEATURE_PAGES__ ? 'defineAsyncComponent, ' : ''
}resolveComponent, createVNode, withCtx, openBlock, createBlock } from 'vue'
import { setupPage, PageComponent, AsyncLoadingComponent, AsyncErrorComponent } from '@dcloudio/uni-h5'
import { PageComponent, AsyncLoadingComponent, AsyncErrorComponent } from '@dcloudio/uni-h5'
import { appid, debug, networkTimeout, router, async, sdkConfigs, qqMapKey, nvue } from '${manifestJsonPath}'
${cssCode}
${uniConfigCode}
......@@ -128,7 +128,7 @@ function generatePageDefineCode(pageOptions: UniApp.PagesJsonPageOptions) {
pageOptions.path
)} = defineAsyncComponent(extend({loader:()=>import('./${
pageOptions.path
}.vue?mpType=page').then(comp=>setupPage(comp))},AsyncComponentOptions))`
}.vue?mpType=page')},AsyncComponentOptions))`
}
function generatePagesDefineCode(
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册