vite.config.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import { defineConfig, loadEnv } from "vite";
  2. import { fileURLToPath, URL } from "url";
  3. import vue from "@vitejs/plugin-vue";
  4. import path from "path";
  5. import AutoImport from "unplugin-auto-import/vite";
  6. import Components from "unplugin-vue-components/vite";
  7. import { NaiveUiResolver } from "unplugin-vue-components/resolvers";
  8. import { ViteImageOptimizer } from "vite-plugin-image-optimizer";
  9. // https://vitejs.dev/config/
  10. function pathResolve(dir) {
  11. return path.resolve(process.cwd(), ".", dir);
  12. }
  13. export default ({ mode }) =>
  14. defineConfig({
  15. base: loadEnv(mode, process.cwd()).VITE_PUBLIC_DIR,
  16. plugins: [
  17. vue(),
  18. AutoImport({
  19. imports: [
  20. "vue",
  21. {
  22. "naive-ui": [
  23. "useDialog",
  24. "useMessage",
  25. "useNotification",
  26. "useLoadingBar",
  27. ],
  28. },
  29. ],
  30. }),
  31. Components({
  32. resolvers: [NaiveUiResolver()],
  33. }),
  34. ViteImageOptimizer({
  35. png: {
  36. quality: 100,
  37. },
  38. jpg: {
  39. quality: 100,
  40. },
  41. }),
  42. ],
  43. resolve: {
  44. alias: {
  45. "@": path.resolve(__dirname, "src"),
  46. "##": path.resolve(__dirname, "src/assets"),
  47. },
  48. extensions: [".mjs", ".js", ".ts", ".jsx", ".tsx", ".json", ".vue"],
  49. },
  50. });