如何查看 vite 插件的执行顺序

在 Vite 中,插件的执行顺序取决于以下几个因素:

  1. 插件的 enforce 选项
    • pre:优先执行(在 Vite 内部插件之前)。
    • post:最后执行(在 Vite 内部插件之后)。
    • 默认:不指定 enforce 的插件按照插件注册顺序执行。
  2. 插件的类型
    • Vite 插件可以处理多个阶段,例如 config, configResolved, buildStart, transform, generateBundle 等,每个阶段的执行顺序可能有所不同。
  3. 插件注册顺序
    • vite.config.jsplugins 数组中,插件的顺序会影响它们的执行顺序(除非 enforce 影响了它们的优先级)。

如何查看插件的执行顺序

你可以通过以下方法查看 Vite 插件的执行顺序:

方法 1:使用 configResolved

vite.config.js 中添加一个插件,监听 configResolved 钩子,输出插件列表:

import { defineConfig } from 'vite';

export default defineConfig({
  plugins: [
    {
      name: 'inspect-plugins',
      enforce: 'pre', // 确保这个插件最早执行
      configResolved(config) {
        console.log(
          config.plugins.map((p) => ({
            name: p.name,
            enforce: p.enforce || 'normal'
          }))
        );
      }
    }
  ]
});

运行 vite 时,你会在控制台看到插件的执行顺序。


方法 2:使用 transform 钩子

如果你想查看 transform 钩子的执行顺序,可以在插件中打印日志:

export default defineConfig({
  plugins: [
    {
      name: 'log-transform',
      transform(code, id) {
        console.log(\`[log-transform] Processing: ${id}\`);
        return null;
      }
    }
  ]
});

运行后,在终端中查看不同插件的 transform 触发顺序。


方法 3:使用 debug 模式

你可以运行 Vite 时加上 DEBUG 变量:

DEBUG=vite:* vite

或者在 package.json 里修改 scripts

"scripts": {
  "dev": "DEBUG=vite:* vite"
}

这样可以看到插件的详细执行日志,包括 config, transform 等钩子。


这些方法可以帮助你分析插件的执行顺序,并调整 enforce 以控制它们的优先级。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇