vite.config.build.taro.vue.disperse.ts 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { defineConfig } from 'vite';
  2. import vue from '@vitejs/plugin-vue';
  3. import path from 'path';
  4. import config from './package.json';
  5. import configPkg from './src/config.json';
  6. const banner = `/*!
  7. * ${config.name} v${config.version} ${new Date()}
  8. * (c) 2021 @jdf2e.
  9. * Released under the MIT License.
  10. */`;
  11. let input = {};
  12. configPkg.nav.map((item) => {
  13. item.packages.forEach((element) => {
  14. let { name, show, taro, type, exportEmpty, exportEmptyTaro } = element;
  15. if (taro && (show || exportEmpty)) {
  16. input[name] = `./src/packages/__VUE/${name.toLowerCase()}/index${
  17. exportEmpty && !exportEmptyTaro ? '.vue' : '.taro.vue'
  18. }`;
  19. }
  20. });
  21. });
  22. export default defineConfig({
  23. resolve: {
  24. alias: [{ find: '@', replacement: path.resolve(__dirname, './src') }]
  25. },
  26. plugins: [vue()],
  27. build: {
  28. minify: false,
  29. terserOptions: {
  30. compress: {
  31. drop_console: true,
  32. drop_debugger: true
  33. }
  34. },
  35. lib: {
  36. entry: '',
  37. name: 'index',
  38. // fileName: (format) => format,
  39. formats: ['es']
  40. },
  41. rollupOptions: {
  42. // 请确保外部化那些你的库中不需要的依赖
  43. external: ['vue', 'vue-router', '@tarojs/taro'],
  44. input,
  45. output: {
  46. banner,
  47. dir: path.resolve(__dirname, './dist/packages/_es'),
  48. entryFileNames: '[name].js'
  49. }
  50. },
  51. emptyOutDir: false
  52. }
  53. });