Адаптер 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
. Ниже приведен пример использования встроенного промежуточного программного обеспечения в файле точки входа.
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]]
. Например:
[[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'));
};