vite.config.js
文件中的 build.rollupOptions
配置项允许开发者自定义底层的 Rollup 打包配置。以下是对 build.rollupOptions
配置项的详细解析:
一、基本配置
-
external:用于指定打包时应该将哪些模块作为外部模块处理。这意味着打包过程中不会对这些外部模块进行打包,而是直接从外部加载。例如,如果项目中使用了某个第三方库,且该库可能已经被其他项目打包成了一个单独的 bundle,那么就可以将这个库指定为外部模块,以减小打包体积。
-
input:指定打包的入口文件。可以是一个字符串(单入口)或一个对象(多入口),其中对象的属性名将作为文件名中的
[name]
占位符。 -
output:配置打包的输出选项。可以包含以下子选项:
- dir:指定输出目录。
- file:指定要输出的文件(仅在生成的 chunk 不超过一个的情况下才可使用)。
- format:指定输出的格式,如
es
、cjs
、amd
、iife
、umd
等。 - name:指定 bundle 输出内容的别名(仅在
iife
或umd
输出模式下需要)。 - chunkFileNames:自定义代码分割中产生的 chunk 的文件名。支持占位符,如
[format]
、[hash]
、[name]
等。 - entryFileNames:指定入口文件的文件名模式。同样支持占位符。
- assetFileNames:自定义构建结果中的静态资源名称。支持占位符,如
[extname]
、[ext]
、[hash]
、[name]
等。 - manualChunks:允许创建自定义的公共 chunk。可以是一个对象(每个属性代表一个 chunk)或一个函数(每个被解析的模块都会经过该函数处理)。
-
plugins:指定要使用的 Rollup 插件。插件可以用于各种任务,如代码转换、压缩、打包优化等。
二、其他配置选项
除了上述基本配置外,build.rollupOptions
还支持一些其他配置选项,如:
- cache:配置缓存选项,以提高构建速度。
- logLevel:设置日志级别,以控制构建过程中输出的日志信息。
- makeAbsoluteExternalsRelative:将外部依赖的绝对路径转换为相对路径。
- maxParallelFileOps:限制 Rollup 同时打开的文件数量,以防止系统资源耗尽。
- onwarn:拦截警告信息,允许开发者自定义如何处理警告。
- preserveEntrySignatures:确保入口 chunk 的导出与基础入口模块一致。
- strictDeprecations:对废弃功能的使用发出警告,以帮助开发者迁移到新的 API 或功能。
三、配置示例
以下是一个使用 build.rollupOptions
的配置示例:
// vite.config.js
export default defineConfig({
build: {
rollupOptions: {
input: 'src/main.js',
output: {
dir: 'dist',
format: 'es',
chunkFileNames: 'js/[name]-[hash].js',
entryFileNames: 'js/[name]-[hash].js',
assetFileNames: '[ext]/[name]-[hash].[ext]',
manualChunks(id) {
if (id.includes('node_modules')) {
return 'vendor'; // 将 node_modules 中的代码单独打包成一个名为 vendor 的 JS 文件
}
}
},
external: ['lodash', 'axios'], // 指定 lodash 和 axios 为外部模块
plugins: [
// 在这里添加 Rollup 插件
]
}
}
});
在上面的示例中,input
指定了打包的入口文件,output
配置了输出选项,包括输出目录、文件格式、文件名模式等。external
指定了外部模块,plugins
则用于添加 Rollup 插件。
综上所述,vite build.rollupOptions
配置项提供了丰富的自定义选项,允许开发者根据项目的具体需求进行灵活配置。