title | description |
---|---|
Edge Runtime |
Edge Runtime の API リファレンスです。 |
Next.js Edge ランタイムは標準的な Web API をベースにしており、以下の API をサポートしています:
API | 説明 |
---|---|
Blob |
blob |
fetch |
リソースをフェッチする |
FetchEvent |
fetch イベント |
File |
ファイル |
FormData |
フォームデータ |
Headers |
HTTP ヘッダー |
Request |
HTTP リクエスト |
Response |
HTTP レスポンス |
URLSearchParams |
URL の search パラメータ |
WebSocket |
websocket 接続 |
API | 説明 |
---|---|
atob |
Base-64 エンコードされた文字列をデコードする |
btoa |
文字列を base-64 でエンコードする |
TextDecoder |
Uint8Array を文字列にデコードする |
TextDecoderStream |
チェーン可能なストリーム用デコーダ |
TextEncoder |
文字列を Uint8Array にエンコードする |
TextEncoderStream |
ストリーム用のチェーン可能なエンコーダー |
API | 説明 |
---|---|
ReadableStream |
読み取り可能なストリーム |
ReadableStreamBYOBReader |
ReadableStream のリーダー |
ReadableStreamDefaultReader |
ReadableStream のリーダー |
TransformStream |
変換ストリーム |
WritableStream |
書き込み可能なストリーム |
WritableStreamDefaultWriter |
WritableStream のライター |
API | 説明 |
---|---|
crypto |
プラットフォームの暗号機能へのアクセスを提供する |
CryptoKey |
暗号鍵 |
SubtleCrypto |
ハッシュ、署名、暗号化、復号化などの一般的な暗号プリミティブへのアクセスを提供する |
API | 説明 |
---|---|
AbortController |
1 つまたは複数の DOM リクエストを中断する |
Array |
値の配列 |
ArrayBuffer |
一般的な固定長の生バイナリデータバッファ |
Atomics |
アトミック操作を静的メソッドとして提供する |
BigInt |
任意の精度の整数 |
BigInt64Array |
64 ビット符号付き整数の型付き配列 |
BigUint64Array |
64 ビット符号なし整数の型付き配列 |
Boolean |
論理的な実体を表し、true とfalse の 2 つの値を持つ |
clearInterval |
setInterval() のコールによって確立された、時間指定の繰り返しアクションをキャンセルする |
clearTimeout |
setTimeout() のコールによって確立された、時間指定の繰り返しアクションをキャンセルする |
console |
ブラウザのデバッグ・コンソールにアクセスする |
DataView |
ArrayBuffer の一般的なビュー |
Date |
プラットフォームに依存しないフォーマットで、ある一瞬を表す |
decodeURI |
encodeURI または同様のルーチンで以前に作成された統一資源識別子(URI)をデコードする |
decodeURIComponent |
encodeURIComponent または同様のルーチンで以前に作成された統一資源識別子(URI)コンポーネントをデコードする |
DOMException |
DOM で発生したエラー |
encodeURI |
特定の文字の各インスタンスを、その文字の UTF-8 エンコーディングを表す 1 つ、2 つ、3 つ、または 4 つのエスケープシーケンスで置き換えることによって、統一資源識別子(URI)をエンコードする |
encodeURIComponent |
特定の文字の各インスタンスを、その文字の UTF-8 エンコーディングを表す 1 つ、2 つ、3 つ、または 4 つのエスケープシーケンスで置き換えることによって、統一資源識別子(URI)コンポーネントをエンコードする |
Error |
文を実行しようとしたとき、またはプロパティにアクセスしようとしたときのエラー |
EvalError |
グローバル関数eval() に関して発生したエラー |
Float32Array |
32 ビット浮動小数点数の型付き配列 |
Float64Array |
64 ビット浮動小数点数の型付き配列 |
Function |
関数 |
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 |
0 ~ 255 にクランプされた 8 ビット符号なし整数の型付き配列 |
Uint32Array |
32 ビット符号なし整数の型付き配列 |
URIError |
グローバル URI 処理関数が誤った方法で使用された場合のエラー |
URL |
オブジェクトの URL を作成するための静的メソッドを提供するオブジェクト |
URLPattern |
URL パターン |
URLSearchParams |
キーと値のペアのコレクション |
WeakMap |
キーが弱く参照される、キーと値のペアのコレクション |
WeakSet |
オブジェクトのコレクションを表し、各オブジェクトは一度しか出現しない |
WebAssembly |
WebAssembly へのアクセス |
process.env
を使えば、next dev
とnext build
両方から環境変数にアクセスできます。
Edge ランタイムには、以下のような制限があります:
- Node.js のネイティブ API はサポートされていません。例えば、ファイルシステムへの読み書きはできません
- ES モジュールを実装し、ネイティブ Node.js API を使用しない限り、
node_modules
を使用できます require
を直接呼び出すことはできません。代わりに ES モジュールを使用してください
また以下の JavaScript の言語機能は無効になっており、動作しません:
API | 説明 |
---|---|
eval |
文字列として表現された JavaScript コードを評価する |
new Function(evalString) |
引数として与えられたコードで新しい関数を作成する |
WebAssembly.compile |
バッファ・ソースから WebAssembly モジュールをコンパイルする |
WebAssembly.instantiate |
バッファ・ソースから WebAssembly モジュールをコンパイルし、インスタンス化する |
まれに、実行時に到達できない動的なコード評価文がコードに含まれている(またはインポートされている)場合があり、そのようなステートメントはツリーシェイキングでは削除できません。このチェックを緩和して、Middleware または Edge API Route にエクスポートされた設定で特定のファイルを許可できます:
export const config = {
runtime: 'edge', // Edge API Routesのための指定
unstable_allowDynamic: [
// 単一のファイルを許可する
'/lib/utilities.js',
// 3rdパーティのfunction-bindモジュール内のすベてをglobで許可する
'/node_modules/function-bind/**',
],
}
unstable_allowDynamic
は、特定のファイルの動的コード評価を無視するglob(または glob の配列)です。glob は、アプリケーションのルート・フォルダからの相対パスで指定します。
これらの文が Edge で実行されると、実行時エラーが発生することに注意してください。