vite.config.ts 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. /*
  2. * @Author: LiZhiWei
  3. * @Date: 2025-04-24 15:29:01
  4. * @LastEditors: LiZhiWei
  5. * @LastEditTime: 2025-12-30 15:47:25
  6. * @Description:
  7. */
  8. import { defineConfig } from "vite"
  9. import vue from "@vitejs/plugin-vue"
  10. import AutoImport from "unplugin-auto-import/vite"
  11. import Components from "unplugin-vue-components/vite"
  12. import { ElementPlusResolver } from "unplugin-vue-components/resolvers"
  13. export default defineConfig(({ mode }) => {
  14. const plugins = [
  15. vue(),
  16. AutoImport({
  17. resolvers: [ElementPlusResolver()],
  18. }),
  19. Components({
  20. resolvers: [ElementPlusResolver()],
  21. }),
  22. ]
  23. const resolve = {
  24. alias: {
  25. "@": "/src",
  26. ...(mode === "lib"
  27. ? {}
  28. : {
  29. "huijia-viewfile": "/src/components/view_file/lib.js",
  30. "huijia-viewfile/style.css": "/src/components/view_file/index.less",
  31. }),
  32. },
  33. }
  34. const workerConfig = {
  35. format: "es" as const,
  36. rollupOptions: {
  37. output: {
  38. entryFileNames: (chunkInfo: any) => {
  39. if (chunkInfo.name.includes("pdf.worker")) {
  40. return "assets/pdf.worker.js"
  41. }
  42. return "assets/[name]-[hash].js"
  43. },
  44. chunkFileNames: (chunkInfo: any) => {
  45. if (chunkInfo.name.includes("pdf.worker")) {
  46. return "assets/pdf.worker.js"
  47. }
  48. return "assets/[name]-[hash].js"
  49. },
  50. },
  51. },
  52. }
  53. if (mode === "lib") {
  54. return {
  55. plugins,
  56. resolve,
  57. publicDir: false,
  58. worker: workerConfig,
  59. build: {
  60. outDir: "dist-lib",
  61. emptyOutDir: true,
  62. lib: {
  63. entry: "src/components/view_file/lib.js",
  64. name: "ViewFile",
  65. formats: ["es", "cjs"],
  66. fileName: (format) => (format === "cjs" ? "index.cjs" : "index.js"),
  67. },
  68. rollupOptions: {
  69. external: ["vue"],
  70. output: {
  71. exports: "named",
  72. globals: {
  73. vue: "Vue",
  74. },
  75. },
  76. },
  77. },
  78. }
  79. }
  80. return {
  81. plugins,
  82. resolve,
  83. worker: {
  84. format: "es",
  85. },
  86. }
  87. })