diff --git a/packages/uni-h5-vite/src/plugin/config.ts b/packages/uni-h5-vite/src/plugin/config.ts index 34aeed1dcbf54e7f73fed5a6386a29e30953bb0b..d219d0d307fec809eabb5f9f97db798f9f82f230 100644 --- a/packages/uni-h5-vite/src/plugin/config.ts +++ b/packages/uni-h5-vite/src/plugin/config.ts @@ -1,6 +1,6 @@ import fs from 'fs' import path from 'path' -import type { Plugin, ResolvedConfig } from 'vite' +import type { Plugin, ResolvedConfig, ServerOptions } from 'vite' import { isInHBuilderX, normalizePath, @@ -9,6 +9,7 @@ import { import { createDefine, isSsr } from '../utils' import { esbuildPrePlugin } from './esbuild/esbuildPrePlugin' import { external } from './configureServer/ssr' +import { extend, hasOwn } from '@vue/shared' export function createConfig(options: { resolvedConfig: ResolvedConfig | null }): Plugin['config'] { @@ -21,6 +22,26 @@ export function createConfig(options: { process.exit() } } + + const server: ServerOptions = { + host: true, + fs: { strict: false }, + watch: { + ignored: ['**/uniCloud**'], + }, + } + const { server: userServer } = config + if (userServer) { + if (hasOwn(userServer, 'host')) { + server.host = userServer.host + } + if (hasOwn(userServer, 'fs')) { + extend(server.fs, userServer.fs) + } + if (hasOwn(userServer, 'watch')) { + extend(server.watch, userServer.watch) + } + } return { optimizeDeps: { entries: resolveMainPathOnce(process.env.UNI_INPUT_DIR), @@ -30,15 +51,7 @@ export function createConfig(options: { }, }, define: createDefine(env.command, config), - server: { - host: true, - fs: { - strict: false, - }, - watch: { - ignored: ['**/uniCloud**'], - }, - }, + server, ssr: { external, }, diff --git a/packages/vite-plugin-uni/src/cli/action.ts b/packages/vite-plugin-uni/src/cli/action.ts index f95d592da1c81befb3c6c1c5741a91b13de4fdb3..63ad5982d539f08b187abfe60790b19bfc41005d 100644 --- a/packages/vite-plugin-uni/src/cli/action.ts +++ b/packages/vite-plugin-uni/src/cli/action.ts @@ -9,7 +9,7 @@ import { initEnv, printStartupDuration } from './utils' import { initEasycom } from '../utils/easycom' export async function runDev(options: CliOptions & ServerOptions) { - extend(options, { watch: true, minify: false }) + extend(options, { watch: {}, minify: false }) initEnv('dev', options) try { if (options.platform === 'h5') {