Vite Nitro 插件

将 Nitro 用作 Vite 插件,以编程方式配置。
vite.config.mjs
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({
  plugins: [
    nitro(),
    {
      name: "my-nitro-plugin",
      nitro: {
        setup: (nitro) => {
          nitro.options.routes["/"] = "#virtual-by-plugin";
          nitro.options.virtual["#virtual-by-plugin"] =
            `export default () => new Response("Hello from virtual entry!")`;
        },
      },
    },
  ],
});

不使用单独的 nitro.config.ts,您可以直接在 Vite 配置中配置 Nitro。这使您可以访问 Nitro 的 setup 钩子,从而以编程方式注册路由和虚拟模块。

Vite 配置

vite.config.mjs
import { defineConfig } from "vite";
import { nitro } from "nitro/vite";

export default defineConfig({
  plugins: [
    nitro(),
    {
      name: "my-nitro-plugin",
      nitro: {
        setup: (nitro) => {
          nitro.options.routes["/"] = "#virtual-by-plugin";
          nitro.options.virtual["#virtual-by-plugin"] =
            `export default () => new Response("Hello from virtual entry!")`;
        },
      },
    },
  ],
});

该配置添加了两个插件:nitro() 插件和一个使用了 nitro.setup 钩子的自定义插件。在 setup 函数中,您可以访问 Nitro 的 options 对象。此示例在 / 路由注册了一个虚拟路由,映射到虚拟模块 #virtual-by-plugin,并且在内联方式定义了该模块。

了解更多