前言:在 Vite 项目中使用 npm run build 直接打包,打包后所有的静态文件都在 assets 文件中,js、css、图片等都放在一起看着很不舒服。我们可以通过配置 vite.config.js 来进行分包处理。打包机制底层是使用的 roolup,可以参考 rollup 官网

vite.config.js 分包配置如下,备注写明字段用途,其中 [name] 、[hash] 、[ext] 是 rollup 中的展位符。

import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";

export default defineConfig({
  plugins: [vue()],
  build: {
    // 配置 rollup 选项
    rollupOptions: {
      // 影响打包输出结果
      output: {
        // 入口 js 文件
        entryFileNames: "js/[name]-[hash].js",

        // 影响分包结果
        chunkFileNames: "js/[name]-[hash].js",

        // 除了 js 的其他文件
        assetFileNames(assetInfo) {
          if (assetInfo.name.endsWith(".css")) {
            return "css/[name]-[hash].css";
          }
          const imgExts = [
            ".png",
            ".jpg",
            ".jpeg",
            ".webp",
            ".svg",
            ".gif",
            ".icon",
          ];
          if (imgExts.some((ext) => assetInfo.name.endsWith(ext))) {
            return "imgs/[name]-[hash][ext]";
          }
          return "assets/[name]-[hash].[ext]";
        },
      },
    },
  },
});

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐