vue3+ts vite打包结构控制通过rollup进行配置方式
作者:沉迷...
这篇文章主要介绍了vue3+ts vite打包结构控制通过rollup进行配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
vue3+ts vite打包结构控制通过rollup进行配置
默认配置的打包结构

在vite.config.ts中进行rollup的配置
使用output.entryFileNames 配置入口文件的打包输出
官方文档https://www.rollupjs.com/configuration-options/#output-chunkfilenames
- vite.config.ts
import { defineConfig } from 'vite'
import { createVitePlugins } from './build/vite'
import { createViteBuild } from './build/vite/build'
// https://vite.dev/config/
export default defineConfig({
plugins: createVitePlugins(),
build: createViteBuild(),
})
- 导入的/build/vite/build
export function createViteBuild() {
return {
rollupOptions: {
output: {
entryFileNames: 'assets/js/[name]-[hash].js', // 入口文件输出配置
chunkFileNames: 'assets/js/[name]-[hash].js', // 代码分割文件输出配置
/*
assetFileNames: 用于配置静态资源的输出文件名该选项的值是一个匹配模式,用于自定义构建结果中的静态资源名称,或者值为一个函数,
对每个资源调用以返回匹配模式。这种模式支持以下的占位符:
*/
assetFileNames: (assetInfo: any) => {
console.log('assetInfo', assetInfo)
const extType = assetInfo.name?.split('.').at(-1)
if (extType === 'css') {
return 'assets/css/[name]-[hash][extname]' // css 文件输出配置
} else if (extType === 'woff' || extType === 'woff2') {
return 'assets/fonts/[name]-[hash][extname]' // 字体文件输出配置
} else if (['jpeg', 'jpg', 'png', 'svg', 'gif'].includes(extType)) {
return 'assets/images/[name]-[hash][extname]' // 图片文件输出配置
} else {
return 'assets/[name]-[hash][extname]' // 其他文件输出配置
}
}
}
}
}
}
- 输出结果

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
