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 的选项对象。此示例在 / 处注册了一个虚拟路由,该路由映射到虚拟模块 #virtual-by-plugin,然后内联定义了该模块。