build.ts 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. import importToCDN from 'vite-plugin-cdn-import';
  2. /**
  3. * 打包相关
  4. * 注意 prodUrl:使用的是 jsdelivr 还是 unpkg。它们的 path 可能不一致
  5. * 文章链接:https://blog.csdn.net/qq_34450741/article/details/129766676,使用的是 jsdelivr
  6. * @description importToCDN https://github.com/mmf-fe/vite-plugin-cdn-import
  7. * @description cdn 在线引入的 cdn 地址配置。path:https://www.jsdelivr.com/ || https://unpkg.com/
  8. * @description external 打包时,过滤包导入。参考:https://rollupjs.org/configuration-options/#external
  9. */
  10. export const buildConfig = {
  11. cdn() {
  12. return importToCDN({
  13. prodUrl: 'https://unpkg.com/{name}@{version}/{path}',
  14. modules: [
  15. // autoComplete('vue'),
  16. // autoComplete('axios'),
  17. {
  18. name: 'vue',
  19. var: 'Vue',
  20. path: 'dist/vue.global.js',
  21. },
  22. {
  23. name: 'vue-demi',
  24. var: 'VueDemi',
  25. path: 'lib/index.iife.js',
  26. },
  27. {
  28. name: 'vue-router',
  29. var: 'VueRouter',
  30. path: 'dist/vue-router.global.js',
  31. },
  32. {
  33. name: 'element-plus',
  34. var: 'ElementPlus',
  35. path: 'dist/index.full.js',
  36. },
  37. // {
  38. // name: '@element-plus/icons-vue',
  39. // var: 'ElementPlusIconsVue',
  40. // path: 'dist/index.iife.min.js',
  41. // },
  42. // {
  43. // name: 'echarts',
  44. // var: 'echarts',
  45. // path: 'dist/echarts.min.js',
  46. // },
  47. // {
  48. // name: 'echarts-gl',
  49. // var: 'echarts-gl',
  50. // path: 'dist/echarts-gl.min.js',
  51. // },
  52. // {
  53. // name: 'echarts-wordcloud',
  54. // var: 'echarts-wordcloud',
  55. // path: 'dist/echarts-wordcloud.min.js',
  56. // },
  57. // {
  58. // name: 'vue-i18n',
  59. // var: 'VueI18n',
  60. // path: 'dist/vue-i18n.global.min.js',
  61. // },
  62. // {
  63. // name: 'jsplumb',
  64. // var: 'jsPlumb',
  65. // path: 'dist/js/jsplumb.min.js',
  66. // },
  67. // {
  68. // name: 'cropperjs',
  69. // var: 'Cropper',
  70. // path: 'dist/cropper.min.js',
  71. // },
  72. // {
  73. // name: 'sortablejs',
  74. // var: 'Sortable',
  75. // path: 'Sortable.min.js',
  76. // },
  77. // {
  78. // name: 'qrcodejs2-fixes',
  79. // var: 'QRCode',
  80. // path: 'qrcode.min.js',
  81. // },
  82. // {
  83. // name: 'print-js',
  84. // var: 'printJS',
  85. // path: 'dist/print.min.js',
  86. // },
  87. // {
  88. // name: '@wangeditor/editor',
  89. // var: 'wangEditor',
  90. // path: 'dist/index.min.js',
  91. // },
  92. // {
  93. // name: '@wangeditor/editor-for-vue',
  94. // var: 'WangEditorForVue',
  95. // path: 'dist/index.min.js',
  96. // },
  97. // {
  98. // name: 'vue-grid-layout',
  99. // var: 'VueGridLayout',
  100. // path: 'https://cdn.jsdelivr.net/npm/vue-grid-layout@3.0.0-beta1/dist/vue-grid-layout.umd.min.js',
  101. // },
  102. ],
  103. });
  104. },
  105. external: [
  106. 'vue',
  107. // 'axios',
  108. 'vue-router',
  109. 'element-plus',
  110. // '@element-plus/icons-vue',
  111. // 'echarts',
  112. // 'echarts-gl',
  113. // 'echarts-wordcloud',
  114. // 'vue-i18n',
  115. // 'jsplumb',
  116. // 'cropperjs',
  117. // 'sortablejs',
  118. // 'qrcodejs2-fixes',
  119. // 'print-js',
  120. // '@wangeditor/editor',
  121. // '@wangeditor/editor-for-vue',
  122. // 'vue-grid-layout',
  123. ],
  124. };