diff --git a/packages/playground/ssr/package.json b/packages/playground/ssr/package.json index f9364307387b9f989ef9fca7d28217497bd72f80..b2fb1a966193698059ea67a2b84a3708ee7280a7 100644 --- a/packages/playground/ssr/package.json +++ b/packages/playground/ssr/package.json @@ -4,7 +4,7 @@ "version": "0.0.0", "scripts": { "dev": "uni -d uni:*", - "build": "uni build", + "build": "uni build -d uni:*", "dev:ssr": "uni -d uni:* --ssr", "build:ssr": "uni build --ssr" }, diff --git a/packages/playground/ssr/vite.config.js b/packages/playground/ssr/vite.config.js index e0543490fdce65d856454819cfe83afe42455429..b13a00e93db65676b691e9a1e7bbfe988cdb24bc 100644 --- a/packages/playground/ssr/vite.config.js +++ b/packages/playground/ssr/vite.config.js @@ -1,6 +1,9 @@ import { defineConfig } from 'vite' import uni from '@dcloudio/vite-plugin-uni' -// https://vitejs.dev/config/ +/** + * @type {import('vite').UserConfig} + */ export default defineConfig({ + build: { minify: false }, plugins: [uni({ viteLegacyOptions: false })], }) diff --git a/packages/vite-plugin-uni/src/config/index.ts b/packages/vite-plugin-uni/src/config/index.ts index e6857079852c5d399c98c5434efab82246641737..bac0904ffa83e6702d7259f2d416ea576b2cc110 100644 --- a/packages/vite-plugin-uni/src/config/index.ts +++ b/packages/vite-plugin-uni/src/config/index.ts @@ -32,16 +32,22 @@ export function createConfig( options.command = env.command options.platform = (process.env.UNI_PLATFORM as UniApp.PLATFORM) || 'h5' options.inputDir = normalizeInputDir(config) - options.vueOptions = initPluginVueOptions(options) - options.vueJsxOptions = initPluginVueJsxOptions(options) - options.viteLegacyOptions = initPluginViteLegacyOptions(options) - options.compiler.init() - const define = createDefine(options, config, env) let base = config.base if (!base) { const { h5 } = parseManifestJsonOnce(options.inputDir) base = (h5 && h5.router && h5.router.base) || '' } + if (!base) { + base = '/' + } + options.base = base! + options.vueOptions = initPluginVueOptions(options) + options.vueJsxOptions = initPluginVueJsxOptions(options) + options.viteLegacyOptions = initPluginViteLegacyOptions(options) + options.compiler.init() + + const define = createDefine(options, config, env) + return { base, publicDir: config.publicDir || false, diff --git a/packages/vite-plugin-uni/src/vue/options.ts b/packages/vite-plugin-uni/src/vue/options.ts index 5b5143de8e0f2f015718db4d192111db80f61a4a..4f934c493057ae71335415fd6d04d276b13c2934 100644 --- a/packages/vite-plugin-uni/src/vue/options.ts +++ b/packages/vite-plugin-uni/src/vue/options.ts @@ -1,5 +1,5 @@ import { extend, hasOwn, isArray } from '@vue/shared' -import { CompilerOptions, SFCTemplateCompileOptions } from '@vue/compiler-sfc' +import { SFCTemplateCompileOptions } from '@vue/compiler-sfc' import { isCustomElement, isNativeTag } from '@dcloudio/uni-shared' import { EXTNAME_VUE_RE, parseCompatConfigOnce } from '@dcloudio/uni-cli-shared' @@ -7,13 +7,11 @@ import { EXTNAME_VUE_RE, parseCompatConfigOnce } from '@dcloudio/uni-cli-shared' import { matchMedia } from './transforms/matchMedia' import { VitePluginUniResolvedOptions } from '..' -export const uniVueCompilerOptions: CompilerOptions = { - isNativeTag, - nodeTransforms: [matchMedia], -} - -export const uniVueTransformAssetUrls: SFCTemplateCompileOptions['transformAssetUrls'] = - { +function createUniVueTransformAssetUrls( + base: string +): SFCTemplateCompileOptions['transformAssetUrls'] { + return { + base, tags: { audio: ['src'], video: ['src', 'poster'], @@ -30,10 +28,6 @@ export const uniVueTransformAssetUrls: SFCTemplateCompileOptions['transformAsset 'u-video': ['src', 'poster'], }, } - -export const uniVueTemplateOptions: Partial = { - compilerOptions: uniVueCompilerOptions, - transformAssetUrls: uniVueTransformAssetUrls, } export function initPluginVueOptions(options: VitePluginUniResolvedOptions) { @@ -48,7 +42,9 @@ export function initPluginVueOptions(options: VitePluginUniResolvedOptions) { const templateOptions = vueOptions.template || (vueOptions.template = {}) - templateOptions.transformAssetUrls = uniVueTransformAssetUrls + templateOptions.transformAssetUrls = createUniVueTransformAssetUrls( + options.base + ) const compilerOptions = templateOptions.compilerOptions || (templateOptions.compilerOptions = {})