Turbopack
Turbopack は、JavaScriptとTypeScriptに最適化された増分バンドラーでRustで書かれ、Next.jsに組み込まれています。
使用方法
Turbopackは、Next.jsのpages
ディレクトリとapp
ディレクトリの両方で、ローカル開発をより高速化するために使用できます。Turbopackを有効にするには、Next.jsの開発サーバーを実行する際に--turbopack
フラグを使用してください。
package.json
{
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint"
}
}
サポートされている機能
Next.jsのTurbopackは、ほとんどのユーザーにとってゼロコンフィギュレーションが必要で、より高度なユースケースに対して拡張することができます。Turbopackで現在サポートされている機能の詳細については、APIリファレンスをご覧ください。
サポートされていない機能
Turbopackは現在のところnext dev
のみをサポートし、next build
はサポートしていません。安定性に向けて進展する中で、ビルドのサポートに取り組んでいます。
これらの機能は現在サポートされていません:
- Turbopackは、一部の利用頻度が低いCSSモジュールの機能をサポートしていないLightning CSSを活用しています
:local
および:global
はスタンドアロンの擬似クラスとしてはサポートされていません。関数のバリアントのみサポートされています。例::global(a)
- CSS変数で置き換えられた@valueルール
:import
および:export
のICSSルール
- 無効なCSSコメント文法としての
//
- CSSコメントは、仕様に従って
/* comment */
として記述する必要があります。 - Sassのようなプリプロセッサは、この代替構文をサポートしています。
- CSSコメントは、仕様に従って
next.config.js
内のwebpack()
構成- TurbopackはWebpackを置き換えるため、webpack構成はサポートされていません。
- Turbopackの構成については、ドキュメントをご覧ください。
- WebpackローダーのサブセットがTurbopackでもサポートされています。
- Babel (
.babelrc
)- Turbopackはすべての変換と最適化にSWCコンパイラを利用しており、デフォルトではBabelが含まれていません。
.babelrc
ファイルがある場合、Next.jsには有効にできる一般的なBabelプラグインがSWC変換として含まれているため、もはや必要ないかもしれません。詳細についてはコンパイラのドキュメントをお読みください。- ケースごとに確認してもなおBabelが必要な場合は、Turbopackのカスタムwebpackローダーのサポートを活用して
babel-loader
を含めることができます。
- App Routerでrootレイアウトを自動的に作成すること
- この動作は現在サポートされていません。入力ファイルが変更されるため、代わりに手動で指定した場所にrootレイアウトを追加するようエラーが表示されます。
@next/font
(レガシーフォントサポート)@next/font
はnext/font
に置き換えられ非推奨となり、next/font
はTurbopackで完全にサポートされています。
- Relayの変換
- 今後の実装を予定しています。
pages/_document.tsx
での.css
インポートのブロック- 現在webpackを使用しているNext.jsでは
pages/_document.tsx
での.css
ファイルのインポートをブロックしています。 - 将来、この警告の実装を予定しています。
- 現在webpackを使用しているNext.jsでは
experimental.typedRoutes
- 今後の実装を予定しています。
experimental.nextScriptWorkers
- 今後の実装を予定しています。
experimental.sri.algorithm
- 今後の実装を予定しています。
experimental.fallbackNodePolyfills
- 今後の実装を予定しています。
experimental.esmExternals
- Turbopackと併用する場合、Next.jsでのレガシーesmExternals構成をサポートする予定はありません。
- AMP
- Turbopackと併用する場合、Next.jsでAMPをサポートする予定はありません。
- Yarn PnP
- Turbopackを使用したNext.jsでYarn PnPをサポートする予定はありません。
experimental.urlImports
- Turbopackを使用したNext.jsで
experimental.urlImports
をサポートする予定はありません。
- Turbopackを使用したNext.jsで
:import
と:export
のICSSルール- Turbopackが使用しているCSSパーサであるLightning CSSがこれらのルールをサポートしていないため、Turbopackを使用したNext.jsで
:import
や:export
のICSSルールをサポートする予定はありません。
- Turbopackが使用しているCSSパーサであるLightning CSSがこれらのルールをサポートしていないため、Turbopackを使用したNext.jsで
- edge runtimeにおける
unstable_allowDynamic
構成
トレースファイルの生成
トレースファイルは、Next.jsチームがパフォーマンス指標とメモリ使用量を調査し改善するのに役立ちます。トレースファイルを生成するには、next dev --turbopack
コマンドにNEXT_TURBOPACK_TRACING=1
を追加し、.next/trace.log
ファイルを生成してください。
Turbopackのパフォーマンスとメモリ使用量に関連する問題を報告する際には、GitHubの課題にトレースファイルを含めてください。