Config

defineConfig

编辑此页面

defineConfig 辅助函数来自 @solidjs/start/config,用于在 app.config.ts 中使用。

它接收一个配置对象,包含 SolidStart、Vite 和 Nitro 的设置。


配置 Vite

SolidStart 支持大多数 Vite 选项,包括通过 vite 选项配置插件:

import { defineConfig } from "@solidjs/start/config";
export default defineConfig({
vite: {
// vite 选项
plugins: [],
},
});

vite 选项也可以是一个函数,可以为每个 Vinxi 路由器进行自定义配置。

在 SolidStart 中,使用了 3 个路由器:

  • server - 服务端路由
  • client - 客户端路由
  • server-function - 服务器函数
import { defineConfig } from "@solidjs/start/config";
export default defineConfig({
vite({ router }) {
if (router === "server") {
} else if (router === "client") {
} else if (router === "server-function") {
}
return { plugins: [] };
},
});

配置 Nitro

SolidStart 使用 Nitro 来在多个平台上运行。 server 选项暴露了一些 Nitro 选项,包括构建和部署预设。 所有可用预设的概述可以在 Nitro 文档的部署部分 中找到。

一些常见的预设包括:

服务器

提供商

静态站点生成

如果不传递参数,默认将使用 Node 预设。 其他预设可能会被提供商自动检测,但如果没有,则必须在 server-preset 选项中添加到配置中。

例如,使用 Netlify Edge 将如下所示:

import { defineConfig } from "@solidjs/start/config";
export default defineConfig({
server: {
preset: "netlify_edge",
},
});

特别说明

SolidStart 使用异步本地存储。 Netlify、Vercel 和 Deno 默认支持这个功能,但如果你使用 Cloudflare,你需要指定以下内容:

import { defineConfig } from "@solidjs/start/config";
export default defineConfig({
server: {
preset: "cloudflare_module",
rollupConfig: {
external: ["__STATIC_CONTENT_MANIFEST", "node:async_hooks"],
},
},
});

wrangler.toml 中,你需要启用 node 兼容性:

compatibility_flags = [ "nodejs_compat" ]

参数

| 属性 | 类型 | 默认值 | 描述 | | -------------------- | ------------------------------------------ | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | |ssr | boolean | true | 在客户端和服务器渲染之间切换。 | | solid | object | | vite-plugin-solid 的配置对象 | | extensions | string[] | ["js", "jsx", "ts", "tsx"] | 要被视为路由的文件扩展名数组。 | | server | object | | Nitro 服务器配置选项 | | appRoot | string | "./src" | 应用程序根目录的路径。  | | routeDir | string | "./routes" | 路由所在的路径。 | | middleware | string | | 可选的中间件文件的路径。 | | devOverlay | boolean | true | 切换开发覆盖层。 | | experimental.islands | boolean | false | 启用"islands"模式。 | | vite | ViteConfig({ router })=>ViteConfig | | Vite 配置对象。可以为每个 router 配置,其中 router 的字符串值为 "server"、"client" 或 "server-function" |

报告此页面问题