Адаптер Netlify Edge

Адаптер Qwik City Netlify Edge позволяет подключить Qwik City к Netlify Edge Functions.

Установка

Чтобы интегрировать адаптер netlify-edge в проект, используйте команду add:

npm run qwik add netlify-edge

Она автоматически установит необходимые зависимости, включая Netlify CLI.

Адаптер добавит новый файл vite.config.ts в каталог adapters/, и создаст файл точки входа, как показано ниже:

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

Кроме того, в package.json будут обновлены скрипты build.server и deploy.

Сборка для производственной среды

Чтобы собрать приложение для производственной среды, используйте команду build, эта команда автоматически запустит npm run build.server и npm run build.client:

npm run build

Читайте полное руководство здесь

Развёртывание в среде разработки

Чтобы развернуть приложение для разработки:

npm run deploy

Обратите внимание, что для выполнения этого шага вам может понадобиться учётная запись Netlify!

Развёртывание в производственной среде

После установки интеграции с помощью npm run qwik add netlify-edge проект готов к развёртыванию в Netlify. Однако вам нужно будет создать репозиторий git и отправить в него код.

Пожалуйста, обратитесь к документации Netlify для получения дополнительных сведений о том, как развернуть ваш сайт: Документация Netlify.

Дополнительно

Промежуточное ПО Netlify Edge

При добавлении адаптера 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 Edge

Объявление функций Netlify Edge может быть настроено на выполнение по опредёленным шаблонам URL. Каждое объявление функции ассоциирует один шаблон пути к сайту с одной функцией для выполнения запросов, соответствующей этому пути. Один запрос может выполнить цепочку функций из серии объявлений. Одна функция может быть связана с несколькими путями в различных объявлениях.

Это используется для определения того, должен ли ответ быть рендерен сервером (SSR) или вместо этого использовать статический файл index.html (SSG).

По умолчанию адаптер Netlify Edge генерирует файл .netlify/edge-middleware/manifest.json, который используется системой развёртывания Netlify для определения того, какие пути должны, а какие нет, использовать edge-функции.

Чтобы переопределить сгенерированный манифест, вы можете добавить объявление в netlify.toml с помощью секции конфигурации [[edge_functions]]. Например:

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

Контекст запроса Netlify

Netlify context доступен в параметре 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