vite.config.js 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. /*
  2. * @Descripttion:
  3. * @version: 1.0.0
  4. * @Author: htang
  5. * @Date: 2024-07-15 16:33:33
  6. * @LastEditors: htang
  7. * @LastEditTime: 2024-08-24 14:38:23
  8. */
  9. import { defineConfig, loadEnv } from "vite";
  10. import vue from "@vitejs/plugin-vue";
  11. import { OUTPUT_DIR } from './build/constant';
  12. import path from "path";
  13. const TimeStamp = new Date().getTime();
  14. function resolve(url) {
  15. return path.resolve(__dirname, url);
  16. }
  17. // https://vitejs.dev/config/
  18. export default ({ mode }) => {
  19. // 获取环境变量
  20. const env = loadEnv(mode, process.cwd());
  21. return defineConfig({
  22. base: './', //env.VITE_APP_BASE_URL, // 动态改变base值
  23. server: {
  24. port: 8080,
  25. },
  26. assetsInclude: [
  27. "**/*.glb",
  28. "**/*.gltf",
  29. "**/*.fbx",
  30. "**/*.hdr",
  31. "**/*.json",
  32. "**/*.mp4",
  33. "**/*.mov",
  34. ],
  35. resolve: {
  36. alias: {
  37. "@": resolve("./src"),
  38. "~@": resolve("./src"),
  39. },
  40. // 省略文件后缀
  41. extensions: [".mjs", ".js", ".jsx", ".json"],
  42. },
  43. build: {
  44. minify: 'esbuild',
  45. target: 'es2015',
  46. cssTarget: 'chrome80',
  47. outDir: OUTPUT_DIR,
  48. terserOptions: {
  49. compress: {
  50. // keep_infinity: true,
  51. // // Used to delete console in production environment
  52. // drop_console: VITE_DROP_CONSOLE,
  53. // drop_debugger: true,
  54. },
  55. },
  56. // Turning off brotliSize display can slightly reduce packaging time
  57. reportCompressedSize: false,
  58. chunkSizeWarningLimit: 2000,
  59. rollupOptions: {
  60. // 参考:https://blog.cinob.cn/archives/393
  61. output: {
  62. // 入口文件名
  63. entryFileNames: `assets/[name]-${TimeStamp}.js`,
  64. // 块文件名
  65. chunkFileNames: `assets/[name]-[hash]-${TimeStamp}.js`,
  66. // 资源文件名 css 图片等等
  67. assetFileNames: `assets/[name]-[hash]-balabala-${TimeStamp}.[ext]`,
  68. }
  69. }
  70. },
  71. envDir: 'env',
  72. plugins: [vue()],
  73. });
  74. };