You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
2.3 KiB

3 years ago
  1. export const vitePluginChunk = {
  2. name: 'vite-plugin-chunk',
  3. outputOptions: (options) => {
  4. options.manualChunks = (id, {getModuleInfo, getModuleIds}) => {
  5. // console.log(id)
  6. if(id.includes('node_modules/ant-design-vue')) {
  7. return 'antd.min.esm'
  8. } else if(id.includes('@ant-design/icons-vue')
  9. || id.includes('@ant-design/icons-svg')) {
  10. return 'antd.icons.esm'
  11. } else if(id.includes('node_modules/moment')) {
  12. return 'moment.min.esm'
  13. } else if(id.includes('node_modules/@vue/')) {
  14. return 'vue.runtime.esm'
  15. } else if(id.includes('node_modules/vue-router/')) {
  16. return 'vue-router.esm'
  17. } else if(id.includes('node_modules/vuex/')) {
  18. return 'vuex.esm'
  19. } else if(id.includes('node_modules/axios'
  20. || id.includes('node_modules/qs'))) {
  21. return 'axios.qs.esm'
  22. } else if(id.includes('node_modules/mockjs')) {
  23. return 'mockjs.esm'
  24. } else if(id.includes('node_modules/tinymce')) {
  25. if(id.includes("tinymce.js")) {
  26. return 'tinymce.esm'
  27. } else if(id.includes("themes")) {
  28. return 'themes/index'
  29. } else if(id.includes("plugins")) {
  30. return 'plugins/index'
  31. } else if(id.includes("icons")) {
  32. return 'icons/index'
  33. }
  34. return null// 'tinymce.esm'
  35. } else if(id.includes("echarts")) {
  36. return "echarts.esm"
  37. } else if(id.includes('node_modules')) {
  38. return 'vendor' // 其他第三方库
  39. }
  40. }
  41. options.assetFileNames = (chunk) => {
  42. if(chunk.name.includes('antd.min.css')) {
  43. return `lib/antd.min.css`
  44. }
  45. return 'assets/[name].[hash].[ext]';
  46. }
  47. options.chunkFileNames = (chunk) => {
  48. if(chunk.name.includes('esm')) {
  49. return 'lib/[name].js'
  50. } else if(chunk.name.includes('tinymce')) {
  51. return 'tinymce/[name].js'
  52. }
  53. return 'assets/[name].[hash].js';
  54. }
  55. return options;
  56. },
  57. }