vite.config.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. import { defineConfig } from 'vite'
  2. import vue from '@vitejs/plugin-vue'
  3. import { resolve } from 'path'
  4. import vueDevTools from 'vite-plugin-vue-devtools'
  5. // https://vitejs.dev/config/
  6. export default defineConfig({
  7. server: {
  8. host: '0.0.0.0'
  9. },
  10. plugins: [
  11. vue(),
  12. // vueDevTools()
  13. ],
  14. resolve: {
  15. alias: {
  16. 'vue': 'vue/dist/vue.esm-bundler.js'
  17. }
  18. },
  19. build: {
  20. lib: {
  21. entry: resolve(__dirname, 'src/index.js'),
  22. name: 'FormMakingV3',
  23. fileName: (format) => `form-making-v3.${format}.js`,
  24. formats: ['umd', 'es' ],
  25. },
  26. minify: 'terser',
  27. terserOptions: {
  28. compress: {
  29. // ecma: 2015,
  30. // keep_infinity: true,
  31. drop_console: true,
  32. drop_debugger: true,
  33. pure_funcs: ['console.log']
  34. }
  35. },
  36. cssCodeSplit: false,
  37. rollupOptions: {
  38. // 确保外部化处理那些你不想打包进库的依赖
  39. external: ['vue', 'element-plus', 'jspdf', 'html2canvas', 'ant-design-vue', 'vant'],
  40. output: {
  41. exports: 'named',
  42. assetFileNames: `index.[ext]`,
  43. manualChunks: undefined,
  44. inlineDynamicImports: true,
  45. // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
  46. globals: {
  47. vue: 'Vue',
  48. 'element-plus': 'ElementPlus',
  49. 'jspdf': 'jspdf',
  50. 'html2canvas': 'html2canvas',
  51. 'ant-design-vue': 'antDesignVue',
  52. 'vant': 'vant'
  53. }
  54. }
  55. }
  56. },
  57. define: {
  58. __VUE_PROD_HYDRATION_MISMATCH_DETAILS__: 'false'
  59. }
  60. })