Edge Runtime
The Next.js Edge Runtime is based on standard Web APIs, it supports the following APIs:
Network APIs
| API | Description |
|---|---|
Blob |
Представляет фрагмент данных |
fetch |
Получает ресурс |
FetchEvent |
Представляет событие получения ресурса |
File |
Представляет файл |
FormData |
Представляет данные формы |
Headers |
Представляет HTTP-заголовки |
Request |
Представляет HTTP-запрос |
Response |
Представляет HTTP-ответ |
URLSearchParams |
Представляет параметры поиска URL |
WebSocket |
Представляет подключение WebSocket |
Encoding APIs
| API | Description |
|---|---|
atob |
Декодирует строку, закодированную в base-64 |
btoa |
Кодирует строку в base-64 |
TextDecoder |
Декодирует Uint8Array в строку |
TextDecoderStream |
Цепочечный декодер для потоков |
TextEncoder |
Кодирует строку в Uint8Array |
TextEncoderStream |
Цепочечный кодировщик для потоков |
Stream APIs
| API | Description |
|---|---|
ReadableStream |
Представляет читаемый поток |
ReadableStreamBYOBReader |
Представляет читателя ReadableStream |
ReadableStreamDefaultReader |
Представляет читателя ReadableStream |
TransformStream |
Представляет поток преобразования |
WritableStream |
Представляет записываемый поток |
WritableStreamDefaultWriter |
Представляет писателя WritableStream |
Crypto APIs
| API | Description |
|---|---|
crypto |
Предоставляет доступ к криптографическим возможностям платформы |
CryptoKey |
Представляет криптографический ключ |
SubtleCrypto |
Предоставляет доступ к общим криптографическим примитивам, таким как хеширование, подписание, шифрование или дешифрование |
Web Standard APIs
| API | Описание |
|---|---|
AbortController |
Позволяет прервать один или несколько запросов DOM по мере необходимости |
Array |
Представляет массив значений |
ArrayBuffer |
Представляет буфер сырых двоичных данных с фиксированной длиной |
Atomics |
Предоставляет атомарные операции в качестве статических методов |
BigInt |
Представляет целое число с произвольной точностью |
BigInt64Array |
Представляет типизированный массив 64-битных целых чисел со знаком |
BigUint64Array |
Представляет типизированный массив 64-битных беззнаковых целых чисел |
Boolean |
Представляет логическое значение и может принимать два значения: true и false |
clearInterval |
Отменяет запланированное повторяющееся действие, которое было ранее установлено вызовом setInterval() |
clearTimeout |
Отменяет запланированное действие, которое было ранее установлено вызовом setTimeout() |
console |
Предоставляет доступ к консоли отладки браузера |
DataView |
Представляет обобщённый вид ArrayBuffer |
Date |
Представляет определенный момент времени в платформенно-независимом формате |
decodeURI |
Декодирует универсальный идентификатор ресурса (URI), ранее созданный функцией encodeURI или подобной ей |
decodeURIComponent |
Декодирует компонент универсального идентификатора ресурса (URI), ранее созданный функцией encodeURIComponent или подобной ей |
DOMException |
Представляет ошибку, которая произошла в DOM |
encodeURI |
Кодирует универсальный идентификатор ресурса (URI), заменяя каждый экземпляр определенных символов одной, двумя, тремя или четырьмя последовательностями экранирования, представляющими кодировку UTF-8 символа |
encodeURIComponent |
Кодирует компонент универсального идентификатора ресурса (URI), заменяя каждый экземпляр определенных символов одной, двумя, тремя или четырьмя последовательностями экранирования, представляющими кодировку UTF-8 символа |
Error |
Представляет ошибку при попытке выполнить оператор или получить доступ к свойству |
EvalError |
Представляет ошибку, возникающую в связи с глобальной функцией eval() |
Float32Array |
Представляет типизированный массив 32-битных чисел с плавающей точкой |
Float64Array |
Представляет типизированный массив 64-битных чисел с плавающей точкой |
Function |
Представляет функцию |
Infinity |
Представляет математическое значение Infinity |
Int8Array |
Представляет типизированный массив 8-битных целых чисел со знаком |
Int16Array |
Представляет типизированный массив 16-битных целых чисел со знаком |
Int32Array |
Представляет типизированный массив 32-битных целых чисел со знаком |
Intl |
Предоставляет доступ к функциональности интернационализации и локализации |
isFinite |
Определяет, является ли значение конечным числом |
isNaN |
Определяет, является ли значение NaN или нет |
JSON |
Предоставляет функциональность преобразования значений JavaScript в формат JSON и обратно |
Map |
Представляет коллекцию значений, где каждое значение может встречаться только один раз |
Math |
Предоставляет доступ к математическим функциям и константам |
Number |
Представляет числовое значение |
Object |
Представляет объект, который является основой для всех объектов JavaScript |
parseFloat |
Парсит строковый аргумент и возвращает число с плавающей точкой |
parseInt |
Парсит строковый аргумент и возвращает целое число с заданным основанием |
Promise |
Представляет собой завершение (или ошибку) асинхронной операции и ее результирующее значение |
Proxy |
Представляет объект, используемый для определения пользовательского поведения для основных операций (например, поиск свойства, присваивание, перечисление, вызов функции и т. д.) |
queueMicrotask |
Добавляет микрозадачу в очередь для выполнения |
RangeError |
Представляет ошибку, когда значение не находится в наборе или диапазоне разрешенных значений |
ReferenceError |
Представляет ошибку, когда ссылаются на несуществующую переменную |
Reflect |
Предоставляет методы для доступных к перехвату операций JavaScript |
RegExp |
Представляет регулярное выражение, позволяющее сопоставлять комбинации символов |
Set |
Представляет коллекцию значений, где каждое значение может встречаться только один раз |
setInterval |
Повторно вызывает функцию с фиксированной задержкой между вызовами |
setTimeout |
Вызывает функцию или вычисляет выражение после указанного количества миллисекунд |
SharedArrayBuffer |
Представляет буфер общего, фиксированной длины, для необработанных двоичных данных |
String |
Представляет последовательность символов |
structuredClone |
Создаёт глубокую копию значения |
Symbol |
Представляет уникальный и неизменяемый тип данных, используемый в качестве ключа свойства объекта |
SyntaxError |
Представляет ошибку при попытке интерпретации синтаксически некорректного кода |
TypeError |
Представляет ошибку, когда значение не соответствует ожидаемому типу |
Uint8Array |
Представляет типизированный массив 8-битовых беззнаковых целых чисел |
Uint8ClampedArray |
Представляет типизированный массив 8-битовых беззнаковых целых чисел, ограниченный значениями от 0 до 255 |
Uint32Array |
Представляет типизированный массив 32-битовых беззнаковых целых чисел |
URIError |
Представляет ошибку, когда функция обработки глобального URI была использована неправильно |
URL |
Представляет объект, предоставляющий статические методы для создания URL объектов |
URLPattern |
Представляет шаблон URL |
URLSearchParams |
Представляет коллекцию пар "ключ/значение" |
WeakMap |
Представляет коллекцию пар "ключ/значение", в которой ключи слабо ссылаются |
WeakSet |
Представляет коллекцию объектов, где каждый объект может встречаться только один раз |
WebAssembly |
Предоставляет доступ к WebAssembly |
Специфичные для Next.js полифилы
Переменные окружения
Вы можете использовать process.env для доступа к Переменным окружения для next dev и next build.
Неподдерживаемые API
Edge Runtime имеет некоторые ограничения, включая:
- Родные API Node.js не поддерживаются. Например, вы не можете читать или записывать в файловую систему.
-
node_modulesмогут использоваться, если они реализуют ES модули и не используют родные API Node.js. - Прямой вызов
requireзапрещён. Используйте ES модули вместо этого.
Следующие языковые возможности JavaScript отключены и не будут работать:
| API | Описание |
|---|---|
eval |
Вычисляет код JavaScript, представленный в виде строки |
new Function(evalString) |
Создаёт новую функцию с кодом, предоставленным в качестве аргумента |
WebAssembly.compile |
Компилирует модуль WebAssembly из буфера исходного кода |
WebAssembly.instantiate |
Компилирует и инициализирует модуль WebAssembly из буфера исходного кода |
В редких случаях ваш код может содержать (или импортировать) некоторые динамические выражения вычисления кода, которые не могут быть достигнуты во время выполнения и которые не могут быть удалены с помощью treeshaking. Вы можете ослабить проверку, разрешив определённые файлы с вашей Middleware или Edge API маршрутом экспортированной конфигурации:
export const config = {
runtime: 'edge', // for Edge API Routes only
unstable_allowDynamic: [
// allows a single file
'/lib/utilities.js',
// use a glob to allow anything in the function-bind 3rd party module
'/node_modules/function-bind/**',
],
}
unstable_allowDynamic — это шаблон, или массив шаблонов, игнорирующий динамическое вычисление кода для определённых файлов. Шаблоны относительны к корневой папке вашего приложения.
Обратите внимание, что если эти выражения будут выполнены на Edge, они вызовут ошибку во время выполнения.
© 2024 Vercel, Inc.
Licensed under the MIT License.
https://nextjs.org/docs/app/api-reference/edge