vite.config.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import path from 'path'
  2. import pkg from './package.json'
  3. import { defineConfig } from 'vite'
  4. import { createVuePlugin } from 'vite-plugin-vue2'
  5. export default defineConfig({
  6. base: '/',
  7. resolve: {
  8. alias: {
  9. '@': path.resolve(__dirname, 'src'),
  10. 'vue': 'vue/dist/vue.common'
  11. }
  12. },
  13. server: {
  14. host: '0.0.0.0',
  15. port: 3000
  16. },
  17. build: {
  18. minify: true,
  19. cssCodeSplit: true, // 将组件的 style 打包到 js 文件中
  20. outDir: 'dist',
  21. lib: {
  22. target: 'esnext',
  23. formats: ['umd'],
  24. entry: path.resolve(__dirname, 'src/main.js'),
  25. name: 'CustomForm',
  26. fileName: (format) => `form.${pkg.version}.${format}.js`
  27. },
  28. rollupOptions: {
  29. // 确保外部化处理那些你不想打包进库的依赖
  30. external: ['vue'],
  31. output: {
  32. // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
  33. globals: {
  34. vue: 'Vue'
  35. }
  36. }
  37. }
  38. },
  39. plugins: [
  40. createVuePlugin({
  41. jsx: true,
  42. // 解决Dom结构中会出现多余的空白字符,导致文本内容间出现分隔、行内标签间出现空格
  43. vueTemplateOptions: {
  44. compilerOptions: {
  45. whitespace: 'condense'
  46. }
  47. },
  48. jsxOptions: {
  49. compositionAPI: true
  50. }
  51. }),
  52. ]
  53. })