全部学科
Python全栈
python
NodeJS全栈
nodejs
📝 1 篇文章 14 道配套习题

插件系统专题

专题说明

本专题介绍 Vite 插件系统的工作原理与配置方法,帮助开发者理解插件机制并正确使用插件。

学习目标

  1. 理解 Vite 插件概念与生命周期
  2. 掌握常用插件的配置方法
  3. 了解 Rollup 插件兼容性

学习内容

  • 插件概念与生命周期:Vite 插件钩子机制
  • 常用插件配置:官方与社区插件使用
  • Rollup 插件兼容:复用 Rollup 插件

插件条件应用

通过 apply 选项可以控制插件仅在特定阶段生效,避免不必要的开销或冲突。

apply 选项

apply 接受 'serve''build',也可通过函数实现更灵活的控制:

JavaScript
// vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import inspect from 'vite-plugin-inspect'

export default defineConfig({
  plugins: [
    vue(), // 默认不传 apply,serve 和 build 都生效

    // 仅在开发服务器启动时生效
    inspect({
      apply: 'serve',
    }),

    // 仅在构建时生效
    {
      name: 'build-only-plugin',
      apply: 'build',
      closeBundle() {
        console.log('构建完成,执行后处理')
      },
    },
  ],
})

函数式条件

JavaScript
// 根据命令动态决定是否启用
{
  name: 'conditional-plugin',
  apply(config, { command }) {
    // command 为 'serve' 或 'build'
    // 只在生产构建且非 SSR 时启用
    return command === 'build' && !config.build?.ssr
  },
}

典型场景

场景apply 值说明
开发调试工具'serve'vite-plugin-inspect、vite-plugin-vue-devtools
打包优化'build'visualizer、compression、bundle 分析
通用插件不传大部分功能插件如 @vitejs/plugin-vue

学习建议

实际配置几个常用插件如 vite-plugin-vue,理解插件配置与效果。

📝 配套习题(14 题)

💡 参考答案在文末
判断题
1

apply 选项可以控制插件只在开发阶段或构建阶段生效。

A

B

2

@vitejs/plugin-vue 是 Vite 官方提供的 Vue 单文件组件支持插件。

A

B

3

Vite 插件兼容 Rollup 插件接口,大部分 Rollup 插件可以直接在 Vite 中使用。

A

B

4

社区插件可以通过 npm 安装后直接在 vite.config.js 的 plugins 数组中配置使用。

A

B

单选题
5

判断一个社区插件是否兼容 Vite,应该查看什么信息?

A

插件的 npm 包名称格式

B

插件的文档说明和 peerDependencies

C

插件的下载量和评分

D

插件的 GitHub star 数量

6

Vite 插件的 enforce 选项用于控制什么?

A

控制插件是否启用

B

控制插件执行顺序(pre/post)

C

控制插件在哪个环境生效

D

控制插件的生命周期钩子

7

如何配置插件只在生产构建时生效?

A

设置 enforce: 'build'

B

设置 apply: 'build'

C

在 build 配置中单独添加插件

D

使用条件语句判断 process.env.NODE_ENV

8

@vitejs/plugin-legacy 插件的作用是什么?

A

支持旧版本的 Vue 框架

B

为旧版浏览器生成兼容构建产物

C

支持传统 CommonJS 模块

D

兼容旧版本的配置文件格式

多选题
9

集成社区插件时常见的问题有哪些?

A

插件版本与 Vite 版本不兼容

B

插件配置顺序影响功能

C

插件只在构建阶段生效

D

插件依赖未正确安装

10

以下哪些是常用的 Vite 社区插件类型?

A

预处理器增强插件

B

代码压缩优化插件

C

HTML 模板处理插件

D

静态资源处理插件

11

关于 Vite 插件的双阶段(开发和构建),以下哪些说法正确?

A

开发阶段使用 Vite 独有钩子

B

构建阶段主要使用 Rollup 兼容钩子

C

所有钩子在两个阶段都执行

D

configureServer 钩子只在开发阶段执行

12

以下哪些是 Vite 插件的独有钩子(非 Rollup 兼容)?

A

config

B

configResolved

C

transform

D

configureServer

13

以下哪些场景适合使用 apply 限制插件生效阶段?

A

只在开发时使用的调试插件

B

只在构建时使用的压缩插件

C

两个阶段都需要的核心插件

D

只在 SSR 构建时使用的插件

填空题
14

Vue 项目中配置 Vue 插件:import ____________ from '@vitejs/plugin-vue'

参考答案
1.正确 2.正确 3.正确 4.正确 5.B 6.B 7.B 8.B 9.A;B;C;D 10.A;B;C;D 11.A;B;D 12.A;B;D 13.A;B;D 14.vue
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 插件开发原理与实践专题
下一个专题 → 构建与部署专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码