非推奨
Wranglerのバージョン間の違い、特に非推奨と破壊的変更について確認します。
以下のコマンドは、Wrangler v3以降非推奨となります。これらのコマンドは、将来のWranglerのバージョンで完全に削除されます。
wrangler generateコマンドは非推奨ですが、v3ではまだアクティブです。wrangler generateはv4で完全に削除されます。
新しいWorkersおよびPagesプロジェクトには、npm create cloudflare@latestを使用してください。
wrangler publishコマンドは非推奨ですが、v3ではまだアクティブです。wrangler publishはv4で完全に削除されます。
Workersをデプロイするには、npx wrangler deployを使用してください。
wrangler pages publishコマンドは非推奨ですが、v3ではまだアクティブです。wrangler pages publishはv4で完全に削除されます。
Pagesをデプロイするには、wrangler pages deployを使用してください。
v3のwrangler devはデフォルトでローカルなので、このオプションはもはや必要ありません。
v3のwrangler devはデフォルトでローカルなので、このオプションはもはや必要ありません。
wrangler devはデフォルトでデータを自動的に永続化するため、このオプションはもはや必要ありません。
これらのオプションは、wrangler pages devが静的アセットを提供するための本番環境の動作を正確にエミュレートできなくなるため、非推奨となりました。Wranglerが他の上流の開発サーバーをプロキシすることに依存する代わりに、静的アセットをディレクトリにビルドし、wrangler pages dev <directory>でそのディレクトリを指すことで、より正確な動作をエミュレートできます。
Wrangler v2は、設定のための新しいフィールドと、Workerの開発およびデプロイのための新機能を導入し、いくつかの冗長なフィールドを非推奨にしました。
wrangler.tomlはもはや必須ではありません。devおよびpublishはCLI引数を受け入れます。tailは任意のWorker名で実行できます。initはプロジェクトのボイラープレートを作成します。varsのためのJSONバインディング。wrangler devのローカルモード。- モジュールシステム(モジュールとサービスワーカー形式のWorkersの両方に対応)。
- DevTools。
- TypeScriptサポート。
- インターネット上での開発環境の共有。
- より広いプラットフォーム互換性。
- 開発者ホットキー。
- より良い設定の検証。
以下のビデオでは、Wrangler v2の主要な変更点のいくつかを説明し、Wrangler v2がどのようにワークフローを加速できるかを示しています。
以下のリストは、もはや必須ではない一般的なフィールドを示しています。
typeはもはや必須ではありません。Wranglerは自動的に正しいプロジェクトタイプを推測します。zone_idはもはや必須ではありません。ルートから直接推測できます。build.upload.formatはもはや使用されません。フォーマットはコードから自動的に推測されます。build.upload.mainおよびbuild.upload.dirはもはや必須ではありません。Workerのエントリーポイントとして機能するトップレベルのmainフィールドを使用してください。site.entry-pointはもはや必須ではありません。エントリーポイントはmainフィールドを通じて指定する必要があります。webpack_configおよびwebpackプロパティはもはやサポートされていません。 Wranglerバージョン1からのwebpackプロジェクトの移行を参照してください。 ここに、もはやサポートされていないWrangler v1のコマンドがあります:wrangler preview- ローカル環境でWorkerを実行するには、wrangler devコマンドを使用してください。wrangler generate- スターターテンプレートを使用したい場合は、そのGitHubリポジトリをクローンし、手動で初期化してください。wrangler route- ルートはwrangler.toml設定ファイルで定義されます。wrangler report- バグを見つけた場合は、Wrangler issues ↗で報告してください。wrangler build- Workerのバンドル出力にアクセスしたい場合は、wrangler publish --outdir=path/to/outputを使用してください。
これらは、wrangler.tomlに追加できる新しいフィールドです。
-
main:string, optionalmainフィールドは、Workerのエントリーポイントを指定するために使用されます。これは、確立されたサービスワーカー形式、または新しい、推奨されるモジュール形式である可能性があります。エントリーポイントは明示的に必要であり、mainフィールドを介して構成するか、コマンドラインで直接渡すことができます。例えば、wrangler dev index.jsのように。このフィールドは、レガシーなbuild.upload.mainフィールド(モジュール形式のWorkersにのみ適用されていました)に置き換わります。 -
rules:array, optionalrulesフィールドは、モジュールタイプとファイルパターンのマッピングの配列です。特定のファイルをJavaScriptとは異なる方法で解釈するようWranglerに指示します。例えば、テキストのようなコンテンツをテキストファイルとして読み取るためや、コンパイルされたWASMをインスタンス化して実行する準備ができたものとして扱うのに便利です。これらのルールは、確立されたサービスワーカー形式と新しいモジュール形式の両方のWorkersに適用できます。このフィールドは、レガシーなbuild.upload.rulesフィールド(モジュール形式のWorkersにのみ適用されていました)に置き換わります。
以前は必須だったいくつかの設定フィールドは、特定の状況でオプションになりました。これらは推測されるか、最適化として追加されることがあります。Wrangler v2を使用する際には、もはや必須のフィールドはなく、必要に応じて徐々に設定を追加できます。
-
name:stringname設定フィールドは、wrangler devやwrangler kv:*コマンドのいずれにも必須ではなくなりました。さらに、コマンドライン引数として--name <name>として渡すこともできます。wrangler publishにはまだ必要です。 -
account_id:stringaccount_idフィールドは、いかなるコマンドにも必須ではありません。関連するコマンドは、ログインしているかどうかを確認し、していない場合はログインを促します。ログインすると、アカウントIDが使用され、ログインセッションが期限切れになるまで再度促されることはありません。複数のアカウントIDがある場合は、選択するアカウントのリストが表示されます。account_idをwrangler.tomlファイルや環境変数CLOUDFLARE_ACCOUNT_IDに設定することもできます。これにより、起動が速くなり、複数のIDがある場合は選択リストをバイパスできます。CLOUDFLARE_API_TOKEN環境変数も、対話的にログインできない状況で便利です - CI/CDでの実行を参照してください。 -
workers_devboolean, default:truewhen no routes are presentworkers_devフィールドは、Workerが*.workers.devサブドメインに公開されるべきことを示します。例えば、my-workerというWorkerと、以前に設定された*.workers.devサブドメインusernameがある場合、Workerはmy-worker.username.workers.dev.comに公開されます。このフィールドは必須ではなく、routeまたはroutesが設定されていない場合はデフォルトでtrueになります。ルートが存在する場合は、デフォルトでfalseになります。*.workers.devサブドメインにも、ルートにも公開したくない場合は、workers_devをfalseに設定してください。これは、他のWorkerからのみアクセスできるスタンドアロンサービスとしてWorkerを公開する際に便利です(services)。
いくつかの設定フィールドは非推奨ですが、その存在はまだ破壊的変更ではありません。警告メッセージを読み、新しい設定に移行するための指示に従うことをお勧めします。これらは将来のバージョンで削除され、機能しなくなります。
-
zone_id:string, deprecatedzone_idフィールドは非推奨であり、将来のリリースで削除されます。これは、route/routesから推測され、wrangler devを使用する際にはdev.hostからもオプションで推測されます。これにより、単一のWorkerを複数のドメインにデプロイすることが簡単になります。 -
build.upload:object, deprecatedbuild.uploadフィールドは非推奨であり、将来のリリースで削除されます。その使用は、警告を伴い、警告を取り除くための設定ファイルの書き換えに関する提案を伴います。build.upload.main/build.upload.dirはmainフィールドに置き換えられ、サービスワーカー形式とモジュール形式の両方のWorkersに適用されます。build.upload.rulesはrulesフィールドに置き換えられ、サービスワーカー形式とモジュール形式の両方のWorkersに適用されます。build.upload.formatはもはや指定されず、wranglerによって自動的に推測されます。
いくつかの設定フィールドは非推奨であり、もはや期待通りに機能しません。エラーメッセージを読み、新しい設定に移行するための指示に従うことをお勧めします。
-
site.entry-point:string, deprecatedsite.entry-point設定は、[site]設定を持つWorkersのエントリーポイントを指定するために使用されました。これは、トップレベルのmainフィールドに置き換えられました。 -
type:rust|javascript|webpack, deprecatedtype設定は、Workerのタイプを指定するために使用されました。これは冗長になり、現在は使用状況から推測されます。type = "webpack"(およびオプションのwebpack_configフィールド)を使用していた場合は、webpack移行ガイドを読んで、プロジェクトを修正し、カスタムビルドを使用してください。
以下のコマンドは、Wrangler v2以降非推奨となります。
wrangler buildコマンドは、Workerをビルドするためにもはや利用できません。
同等の機能は、wrangler publish --dry-run --outdir=path/to/buildで実現できます。
wrangler configコマンドは、APIトークンを介して認証するためにもはや利用できません。
OAuth認証を管理するには、wrangler login / wrangler logoutを使用するか、CLOUDFLARE_API_TOKEN環境変数を介してAPIトークンを提供してください。
wrangler previewコマンドは、Workerの一時的なプレビューインスタンスを作成するためにもはや利用できません。
開発中にWorkerを試すには、wrangler devを使用してください。
wrangler subdomainコマンドは、workers.devサブドメインを作成するためにもはや利用できません。
Workers & Pages > Workerを選択 > サブドメイン > 変更でworkers.devサブドメインを作成してください。
wrangler routeコマンドは、Workerのルートを構成するためにもはや利用できません。
ルートはwrangler.toml設定ファイルで指定されます。
-
Cloudflareダッシュボードで定義されたルートは、Wranglerで定義されたルートと一緒に追加されません。Wranglerで定義されたルートは、
wrangler.tomlのrouteまたはroutesキーです。両方が定義されている場合、wrangler.tomlで定義されたルートのみが有効になります。Cloudflareダッシュボードを介してのみルートを管理するには、wrangler.tomlファイルからrouteおよびroutesキーを削除し、workers_dev = falseを追加してください。 -
Wranglerは、
wrangler devが呼び出されるディレクトリ内のindex.jsをWorkerのエントリーポイントとして使用しなくなります。main設定フィールドを使用するか、コマンドライン引数として明示的に渡してください。例えば、wrangler dev index.jsのように。 -
Wranglerは、パスとして表現されていない場合、ベア指定子がファイル名であると仮定しなくなります。例えば、次のようなフォルダ内で:
project├── index.js└── some-dependency.jsindex.jsの内容が次のような場合:import SomeDependency from "some-dependency.js";addEventListener("fetch", (event) => {// ...});Wrangler v1は、
import SomeDependency from "some-dependency.js";をファイルsome-dependency.jsに解決していました。これはWrangler v2でも機能しますが、非推奨の警告もログに記録されます。将来的には、これがエラーで壊れることになります。代わりに、インポートを相対パスとして指定するように書き換えるべきです。次のように:import SomeDependency from "some-dependency.js";import SomeDependency from "./some-dependency.js";
| コマンド | v1 | v2 | ノート |
|---|---|---|---|
publish | ✅ | ✅ | |
dev | ✅ | ✅ | |
preview | ✅ | ❌ | 削除されました。代わりに dev を使用してください。 |
init | ✅ | ✅ | |
generate | ✅ | ❌ | 削除されました。代わりに git clone を使用してください。 |
build | ✅ | ❌ | 削除されました。代わりに自分のビルドスクリプトを呼び出してください。 |
secret | ✅ | ✅ | |
route | ✅ | ❌ | 削除されました。代わりに publish を使用してください。 |
tail | ✅ | ✅ | |
kv | ✅ | ✅ | |
r2 | 🚧 | ✅ | Wrangler v1.19.8で導入されました。 |
pages | ❌ | ✅ | |
config | ✅ | ❓ | |
login | ✅ | ✅ | |
logout | ✅ | ✅ | |
whoami | ✅ | ✅ | |
subdomain | ✅ | ❓ | |
report | ✅ | ❌ | 削除されました。エラーレポートは対話的に作成されます。 |
| プロパティ | v1 | v2 | ノート |
|---|---|---|---|
type = "webpack" | ✅ | ❌ | 削除されました。移行するにはこのガイドを参照してください。 |
type = "rust" | ✅ | ❌ | 削除されました。代わりにworkers-rs ↗を使用してください。 |
type = "javascript" | ✅ | 🚧 | もはや必要ありません。省略できます。 |
| 機能 | v1 | v2 | ノート |
|---|---|---|---|
| TypeScript | ❌ | ✅ | wranglerにTypeScriptファイルを渡すと、自動的にesbuild ↗を使用してJavaScriptにトランスパイルされます。 |
| ローカルモード | ❌ | ✅ | wrangler dev --localは、あなたのWorkerを私たちのネットワークではなく、あなたのローカルマシンで実行します。これはMiniflare ↗によって提供されています。 |