vue3 打包后没有默认进行分包?立马解决⚡
  6Q6AgeNQ9IAF 2023年11月01日 88 0
Vue

原文地址:我的稀土掘金

默认打包:

所有文件都放在了assets文件夹

image.png

期望:

  • css,js.img等等进行归类

image.png

解决办法

vite.config.js

build:{
  rollupOptions:{
    output:{
      chunkFileNames: 'static/js/[name]-[hash].js',
      entryFileNames: 'static/js/[name]-[hash].js',
      assetFileNames:'static/[ext]/[name]-[hash][extname]',
      //manualChunks 两种使用形式
      // manualChunks:{
      //   elementPlus:['element-plus']
      // }
      manualChunks(id) {
        if (id.includes('element-plus')) {
          return 'element-plus';
        }
      }
    }
  }
}

名词解释

  • rollupOptions 自定义底层的 Rollup 打包配置。这与从 Rollup 配置文件导出的选项相同,并将与 Vite 的内部 Rollup 选项合并。查看 Rollup 选项文档 获取更多细节。
  • output 输出设置
  • output.chunkFileNames 该选项用于对代码分割中产生的 chunk 文件自定义命名。默认值:"[name]-[hash].js"
    该选项用于对代码分割中产生的 chunk 文件自定义命名。它支持以下形式:
    • [format]:输出(output)选项中定义的 format 的值,例如:es 或 cjs
    • [hash]:哈希值,由 chunk 文件本身的内容和所有它依赖的文件的内容共同组成。
    • [name]:chunk 的名字。它可以通过 output.manualChunks 显示设置,或者通过插件调用 this.emitFile 设置。如果没有做任何设置,它将会根据 chunk 的内容来确定。
  • output.entryFileNames 该选项用于指定 chunks 的入口文件名。默认值:"[name].js"
    该选项用于指定 chunks 的入口文件名。支持以下形式:
    • [format]:输出(output)选项中定义的 format 的值,例如:es 或 cjs
    • [hash]:哈希值,由入口文件本身的内容和所有它依赖的文件的内容共同组成。
    • [name]:入口文件的文件名(不包含扩展名),当入口文件(entry)定义为对象时,它的值时对象的键。
  • output.assetFileNames 该选项用于自定义构建结果中的静态文件名称。默认值:"assets/[name]-[hash][extname]"
    该选项用于自定义构建结果中的静态文件名称。它支持以下占位符:
    • [extname]:包含点的静态文件扩展名,例如:.css
    • [ext]:不包含点的文件扩展名,例如:css
    • [hash]:基于静态文件的名称和内容的哈希。
    • [name]:静态文件的名称,不包含扩展名。
  • output.manualChunks,该选项允许你创建自定义的公共模块。可以是对象形式也可以是函数形式。函数第一个参数指向插件绝对路径, 第二个参数包含getModuleInfo, getModuleIds

注意:

【 output.manualChunks】如果设置为对象形式,使用的组件库(插件)如果包含css,不会识别出来单独存入一个文件,还是会放入公共index.css文件函数形式则不然。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  gYl4rku9YpWY   2024年05月17日   60   0   0 Vue
  JZjRRktyDDvK   2024年05月02日   88   0   0 Vue
  VlNAKfyhjjp9   2024年04月30日   82   0   0 Vue
  JNTrZmaOQEcq   2024年04月30日   58   0   0 Vue
  onf2Mh1AWJAW   2024年05月17日   63   0   0 Vue
  3A8RnFxQCDqM   2024年05月17日   59   0   0 Vue
6Q6AgeNQ9IAF