vite.config.build.disperse.ts 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import { defineConfig } from 'vite';
  2. import vue from '@vitejs/plugin-vue';
  3. import path from 'path';
  4. import configPkg from './src/config.json';
  5. let input = {};
  6. configPkg.nav.map((item) => {
  7. item.packages.forEach((element) => {
  8. let { name, type, exclude } = element;
  9. if (exclude != true) {
  10. input[name] = `./src/packages/__VUE/${name.toLowerCase()}/index${type === 'methods' ? '.ts' : '.vue'}`;
  11. }
  12. });
  13. });
  14. export default defineConfig({
  15. resolve: {
  16. alias: [{ find: '@', replacement: path.resolve(__dirname, './src') }]
  17. },
  18. plugins: [vue()],
  19. build: {
  20. minify: false,
  21. lib: {
  22. entry: '',
  23. name: 'index',
  24. // fileName: (format) => format,
  25. formats: ['es']
  26. },
  27. rollupOptions: {
  28. // 请确保外部化那些你的库中不需要的依赖
  29. external: ['vue', 'vue-router', '@/packages/locale', '@nutui/icons-vue'],
  30. input,
  31. output: {
  32. paths: {
  33. '@/packages/locale': '../locale/lang'
  34. },
  35. dir: path.resolve(__dirname, './dist/packages/_es'),
  36. entryFileNames: '[name].js',
  37. plugins: []
  38. }
  39. },
  40. emptyOutDir: false
  41. }
  42. });