Lang x Lang

Edge Runtime

Next.js Edge Runtime は標準的な Web API に基づいており、次の API をサポートしています:

Network APIs

APIDescription
Blob blob を表す
fetch リソースを取得します
FetchEvent fetch イベントを表します
File ファイルを表します
FormData フォームデータを表す
Headers HTTP headers を表します
Request HTTP request を表す
Response HTTP response を表します
URLSearchParams URL の検索パラメータを表します
WebSocket ウェブソケット接続を表現します

Encoding APIs

APIDescription
atob base-64 エンコードされた string をデコードします
btoa string をベース 64 でエンコードします
TextDecoder Uint8Array を string にデコードします
TextDecoderStream ストリーム用のチェーン可能なデコーダー
TextEncoder string を Uint8Array にエンコードします
TextEncoderStream ストリーム用のチェーン可能なエンコーダー

Stream APIs

APIDescription
ReadableStream 読み取り可能なストリームを表します
ReadableStreamBYOBReader ReadableStream のリーダーを表します
ReadableStreamDefaultReader ReadableStream のリーダーを表す
TransformStream transform ストリームを表します
WritableStream 書き込み可能なストリームを表す
WritableStreamDefaultWriter これは WritableStream のライターを表します

Crypto APIs

APIDescription
crypto プラットフォームの暗号機能へのアクセスを提供します
CryptoKey 暗号化キーを表します
SubtleCrypto ハッシング、署名、暗号化または復号化などの一般的な暗号プリミティブへのアクセスを提供します

Web Standard APIs

APIDescription
AbortController 望むときに 1 つまたは複数の DOM リクエストを中止できます
Array 値の配列を表します
ArrayBuffer 一般的で固定長の生の binary データバッファを表現します
Atomics 静的メソッドとしてアトミック操作を提供します
BigInt 任意の精度で表現される number 全体を表します
BigInt64Array 64 ビット符号付き整数のタイプ配列を表現します
BigUint64Array 64 ビット符号なし整数の型付き配列を表現します
Boolean 論理エンティティを表し、truefalseの二つの値を持つことができます
clearInterval setInterval()によって以前に設定された定時的かつ繰り返しのアクションをキャンセルします
clearTimeout setTimeout()によって以前に設定された、時間制御の繰り返しアクションをキャンセルします
console ブラウザの debugging コンソールへのアクセスを提供します
DataView ArrayBufferの汎用ビューを表します
Date プラットフォームに依存しない形式での単一の瞬間を表します
decodeURI encodeURIまたは類似のルーチンによって以前に作成された Uniform Resource Identifier(URI)をデコードします
decodeURIComponent encodeURIComponentまたは同様のルーチンで以前に作成された Uniform Resource Identifier (URI)の component をデコードします
DOMException DOM で発生する error を表します
encodeURI 一定の文字の各インスタンスを、その文字の UTF-8 エンコーディングを表す一つ、二つ、三つ、または四つのエスケープシーケンスに置き換えることで、統一リソース識別子(URI)をエンコードします
encodeURIComponent 一定の文字の各インスタンスを、その文字の UTF-8 エンコーディングを表す 1 つ、2 つ、3 つ、または 4 つのエスケープシーケンスに置き換えることで、Uniform Resource Identifier (URI) component をエン Code します
Error ステートメントの実行やプロパティのアクセス時に error が発生することを表します。
EvalError グローバル関数 eval() に関連する error を表します
Float32Array 32 ビット浮動小数点数のタイプ配列を表現します
Float64Array 64 ビット浮動小数点数の型付き配列を表します
Function 関数を表現します
Infinity 数学的な無限大の'' value ''を表現します
Int8Array 8 ビット符号付き整数の型付き配列を表します
Int16Array 16 ビット符号付き整数の型付き配列を表す
Int32Array 32 ビット符号付き整数の型付き配列を表す
Intl 国際化とローカライゼーション機能へのアクセスを提供します
isFinite value が有限の number であるかどうかを判断します
isNaN value がNaNかどうかを判断します
JSON JavaScript の値を JSON 形式に変換したり,その逆を行ったりする機能を提供します
Map 各々の value が一度だけ発生可能な値の集合を表します
Math 数学的な関数や定数にアクセスを提供します
Number 数値の value を表す
Object それはすべての' JavaScript 'オブジェクトの基礎となる' object 'を表します
parseFloat string 引数を解析し、浮動小数点の number を返します
parseInt 指定された基数の整数を返す、 string 引数を解析します
Promise 非同期操作の最終的な完了(または失敗)と、その結果の value を表します
Proxy 基本的な操作(たとえば、プロパティの検索、割り当て、列挙、関数呼び出しなど)のカスタム動作を定義するために使用される object を表します
queueMicrotask マイクロタスクを実行するためのキューを作成します
RangeError value が許可されたセットまたは範囲内にないときの error を表します
ReferenceError 存在しない variable を参照したときの error を表します
Reflect JavaScript 操作を妨げるメソッドを提供します
RegExp 文字の組み合わせを一致させることを可能にする正規表現を表します
Set 各々の value が一度しか発生しない値のコレクションを表します
setInterval 特定の関数を一定の時間間隔で繰り返し呼び出します
setTimeout 指定した number ミリ秒後に関数を呼び出すか、式を評価します
SharedArrayBuffer 一般的で固定長の生の binary データバッファを表現します
String 文字の並びを表します
structuredClone value のディープコピーを作成します
Symbol object のプロパティのキーとして使用されるユニークで不変なデータの type を表します
SyntaxError 文法的に無効な code を解釈しようとしたときの error を表します
TypeError value が予想された type ではないときの error を表します
Uint8Array 8 ビット符号なし整数の型付き配列を表します
Uint8ClampedArray 0-255 にクランプされた 8 ビット符号なし整数の型付き配列を表します
Uint32Array 32 ビット符号なし整数の型付き配列を表します
URIError グローバル URI 処理関数が誤った方法で使用されたときの error を表します
URL object の URL を作成するために使用される静的メソッドを提供する object を表します
URLPattern URL パターンを表現します
URLSearchParams キー/値のペアの集合を表現します
WeakMap キーが弱参照されるキー/値のペアのコレクションを表します
WeakSet 各々の object が一度だけ出現する可能性のあるオブジェクトのコレクションを表す
WebAssembly WebAssembly へのアクセスを提供します

Next.js Specific Polyfills

Environment Variables

process.envを使用して、next devnext buildの両方に対するEnvironment Variablesにアクセスできます。

Unsupported APIs

Edge Runtime には、以下を含むいくつかの制限があります:

  • ネイティブの Node.js API はサポートされていません。たとえば、ファイルシステムに読み書きすることはできません。
  • node_modulesは、ES Modules を実装し、ネイティブの Node.js API を使用しない限り、使用できます。
  • requireを直接呼び出すことは許されていません。代わりに ES Modules を使用してください。

次の JavaScript 言語の機能は無効化されており、動作しません:

APIDescription
eval string として表現される JavaScript code を評価します
new Function(evalString) 引数として提供された code を使用して新しい関数を作成します
WebAssembly.compile バッファの source から WebAssembly モジュールをコンパイルします
WebAssembly.instantiate バッファの source から WebAssembly モジュールをコンパイルし、インスタンス化します。

まれなケースでは、あなたの code が(または import が)いくつかの dynamic code 評価ステートメントを含んでいる可能性があり、それらは runtime で到達できない_ また、treeshaking によって削除することもできません。あなたの Middleware または Edge API Route のエクスポートされた設定で特定のファイルを許可するチェックを緩和することができます。

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_allowDynamicglob 、または glob の配列で、特定のファイルの dynamic code 評価を無視します。これらの glob は、アプリケーションの root フォルダーに相対的です。

これらのステートメントが Edge 上で実行されると、それらは runtime error を引き起こすことに注意してください。

当社サイトでは、Cookie を使用しています。各規約をご確認の上ご利用ください:
Cookie Policy, Privacy Policy および Terms of Use