插件条件应用
Vite 插件可通过 apply 选项控制生效阶段,避免不必要的插件执行。
apply 选项
JavaScript
function myPlugin() {
return {
name: 'my-plugin',
apply: 'build', // 只在构建时生效
// 或 'serve' 只在开发时生效
}
}
| apply 值 | 生效阶段 | |
|---|---|---|
| serve | 开发服务器启动时 | |
| build | 生产构建时 | |
| 未设置 | 所有阶段生效 |
函数形式 apply
JavaScript
function myPlugin() {
return {
name: 'my-plugin',
apply({ command, mode }) {
// command: 'serve' | 'build'
// mode: 'development' | 'production' | ...
return command === 'build' && mode === 'production'
}
}
}
开发阶段插件示例
JavaScript
// 只在开发环境生效的插件
function devPlugin() {
return {
name: 'dev-plugin',
apply: 'serve',
configureServer(server) {
// 开发服务器配置
}
}
}
构建阶段插件示例
JavaScript
// 只在构建时生效的插件
function buildPlugin() {
return {
name: 'build-plugin',
apply: 'build',
generateBundle(options, bundle) {
// 构建产物处理
}
}
}
注意:apply 未设置时插件在所有阶段生效。
条件配置插件
JavaScript
import compression from 'vite-plugin-compression'
export default defineConfig(({ command }) => ({
plugins: [
// 只在生产构建时压缩
command === 'build' && compression()
].filter(Boolean)
}))
插件执行控制对比
| 控制方式 | 说明 | |
|---|---|---|
| apply: 'serve' | 开发环境生效 | |
| apply: 'build' | 构建环境生效 | |
| 函数 apply | 更细粒度控制 | |
| 条件配置 | 外部控制插件应用 |
要点总结
- apply 控制插件生效阶段
- serve 只在开发环境生效
- build 只在构建环境生效
- 函数形式可更细粒度控制
📝 发现内容有误?点击此处直接编辑