Netlify 边缘适配器

Qwik City Netlify 边缘适配器允许您将 Qwik City 连接到 Netlify 边缘函数.

安装

要集成 netlify-edge 适配器,请使用 add 命令

npm run qwik add netlify-edge

它将自动安装所需的依赖项,包括 Netlify CLI.

适配器将在 adapters/ 目录中添加一个新的 vite.config.ts,并将创建一个新的入口文件,例如

└── adapters/
    └── netlify-edge/
        └── vite.config.ts
└── src/
    └── entry.netlify-edge.tsx

此外,在 package.json 中,build.serverdeploy 脚本将被更新。

生产构建

要为生产构建应用程序,请使用 build 命令,此命令将自动运行 npm run build.servernpm run build.client

npm run build

在此处阅读完整指南

开发部署

要将应用程序部署到开发环境

npm run deploy

请注意,您可能需要一个 Netlify 帐户 才能完成此步骤!

生产部署

使用 npm run qwik add netlify-edge 安装集成后,项目就可以部署到 Netlify 了。但是,您需要创建一个 Git 仓库并将代码推送到该仓库。

有关如何部署网站的更多信息,请参阅 Netlify 文档:Netlify 文档

高级

Netlify 边缘入口中间件

添加 netlify-edge 适配器后,将在 src/entry.netlify-edge.tsx 中创建一个新的入口文件。以下是在入口文件中使用内置中间件的示例。

src/entry.netlify-edge.tsx
import { createQwikCity } from '@builder.io/qwik-city/middleware/netlify-edge';
import qwikCityPlan from '@qwik-city-plan';
import render from './entry.ssr';
 
export default createQwikCity({ render, qwikCityPlan });

编译后的中间件将构建在 .netlify/edge-functions 目录中。

Netlify 边缘函数声明

Netlify 边缘函数声明 可以配置为在特定 URL 模式上运行。每个边缘函数声明将一个站点路径模式与一个函数关联,该函数将在匹配该路径的请求上执行。单个请求可以从一系列声明中执行一系列边缘函数。单个边缘函数可以与多个路径关联,这些路径跨越各种声明。

这对于确定页面响应是否应为服务器端渲染 (SSR) 或者响应是否应使用静态站点生成的 (SSG) index.html 文件很有用。

默认情况下,Netlify 边缘适配器将生成一个 .netlify/edge-middleware/manifest.json 文件,该文件由 Netlify 部署使用来确定哪些路径应该使用边缘函数,哪些路径不应该使用边缘函数。

要覆盖生成的清单,您可以 添加一个声明netlify.toml 中,使用 [[edge_functions]] 配置。例如

netlify.toml
[[edge_functions]]
  path = "/admin"
  function = "auth"

Netlify 请求上下文

Netlify 上下文 在端点方法的 platform 参数中可用

export const onRequest = async ({ platform }) => {
  platform.log('requested ip:', platform.ip);
};

环境变量

export const onRequest = async ({ env }) => {
  platform.log('netlify serverless env read from Netlify UI or CLI', env.get('API_KEY'));
};

贡献者

感谢所有帮助改进本文档的贡献者!

  • adamdbradley
  • manucorporat
  • reemardelarosa
  • mhevery
  • mrhoodz