cdn.ts 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import { Plugin as importToCDN } from "vite-plugin-cdn-import";
  2. /**
  3. * @description 打包时采用`cdn`模式,仅限外网使用(默认不采用,如果需要采用cdn模式,请在 .env.production 文件,将 VITE_CDN 设置成true)
  4. * 平台采用国内cdn:https://www.bootcdn.cn,当然你也可以选择 https://unpkg.com 或者 https://www.jsdelivr.com
  5. * 提醒:mockjs不能用cdn模式引入,会报错。正确的方式是,生产环境删除mockjs,使用真实的后端请求
  6. * 注意:上面提到的仅限外网使用也不是完全肯定的,如果你们公司内网部署的有相关js、css文件,也可以将下面配置对应改一下,整一套内网版cdn
  7. */
  8. export const getCdnPlugin = () =>
  9. importToCDN({
  10. //(prodUrl解释: name: 对应下面modules的name,version: 自动读取本地package.json中dependencies依赖中对应包的版本号,path: 对应下面modules的path,当然也可写完整路径,会替换prodUrl)
  11. prodUrl: "https://cdn.bootcdn.net/ajax/libs/{name}/{version}/{path}",
  12. modules: [
  13. {
  14. name: "vue",
  15. var: "Vue",
  16. path: "vue.global.prod.min.js"
  17. },
  18. {
  19. name: "vue-router",
  20. var: "VueRouter",
  21. path: "vue-router.global.min.js"
  22. },
  23. // 项目中没有直接安装vue-demi,但是pinia用到了,所以需要在引入pinia前引入vue-demi(https://github.com/vuejs/pinia/blob/v2/packages/pinia/package.json#L77)
  24. {
  25. name: "vue-demi",
  26. var: "VueDemi",
  27. path: "index.iife.min.js"
  28. },
  29. {
  30. name: "pinia",
  31. var: "Pinia",
  32. path: "pinia.iife.min.js"
  33. },
  34. {
  35. name: "element-plus",
  36. var: "ElementPlus",
  37. path: "index.full.min.js",
  38. css: "index.min.css"
  39. },
  40. {
  41. name: "axios",
  42. var: "axios",
  43. path: "axios.min.js"
  44. },
  45. {
  46. name: "dayjs",
  47. var: "dayjs",
  48. path: "dayjs.min.js"
  49. },
  50. {
  51. name: "echarts",
  52. var: "echarts",
  53. path: "echarts.min.js"
  54. }
  55. ]
  56. });