import path from 'path' import pkg from './package.json' import { defineConfig } from 'vite' import { createVuePlugin } from 'vite-plugin-vue2' export default defineConfig({ base: '/', resolve: { alias: { '@': path.resolve(__dirname, 'src'), 'vue': 'vue/dist/vue.common' } }, server: { host: '0.0.0.0', port: 3000 }, build: { minify: true, cssCodeSplit: true, // 将组件的 style 打包到 js 文件中 outDir: 'dist', lib: { target: 'esnext', formats: ['umd'], entry: path.resolve(__dirname, 'src/main.js'), name: 'CustomForm', fileName: (format) => `form.${pkg.version}.${format}.js` }, rollupOptions: { // 确保外部化处理那些你不想打包进库的依赖 external: ['vue'], output: { // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量 globals: { vue: 'Vue' } } } }, plugins: [ createVuePlugin({ jsx: true, // 解决Dom结构中会出现多余的空白字符,导致文本内容间出现分隔、行内标签间出现空格 vueTemplateOptions: { compilerOptions: { whitespace: 'condense' } }, jsxOptions: { compositionAPI: true } }), ] })