コンテンツにスキップ

非推奨

Wranglerのバージョン間の違い、特に非推奨と破壊的変更について確認します。

Wrangler v3

非推奨のコマンド

以下のコマンドは、Wrangler v3以降非推奨となります。これらのコマンドは、将来のWranglerのバージョンで完全に削除されます。

generate

wrangler generateコマンドは非推奨ですが、v3ではまだアクティブです。wrangler generateはv4で完全に削除されます。

新しいWorkersおよびPagesプロジェクトには、npm create cloudflare@latestを使用してください。

publish

wrangler publishコマンドは非推奨ですが、v3ではまだアクティブです。wrangler publishはv4で完全に削除されます。

Workersをデプロイするには、npx wrangler deployを使用してください。

pages publish

wrangler pages publishコマンドは非推奨ですが、v3ではまだアクティブです。wrangler pages publishはv4で完全に削除されます。

Pagesをデプロイするには、wrangler pages deployを使用してください。

非推奨のオプション

--experimental-local

v3のwrangler devはデフォルトでローカルなので、このオプションはもはや必要ありません。

--local

v3のwrangler devはデフォルトでローカルなので、このオプションはもはや必要ありません。

--persist

wrangler devはデフォルトでデータを自動的に永続化するため、このオプションはもはや必要ありません。

-- <command>, --proxy, および --script-path in wrangler pages dev

これらのオプションは、wrangler pages devが静的アセットを提供するための本番環境の動作を正確にエミュレートできなくなるため、非推奨となりました。Wranglerが他の上流の開発サーバーをプロキシすることに依存する代わりに、静的アセットをディレクトリにビルドし、wrangler pages dev <directory>でそのディレクトリを指すことで、より正確な動作をエミュレートできます。

Wrangler v2

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, optional

    mainフィールドは、Workerのエントリーポイントを指定するために使用されます。これは、確立されたサービスワーカー形式、または新しい、推奨されるモジュール形式である可能性があります。エントリーポイントは明示的に必要であり、mainフィールドを介して構成するか、コマンドラインで直接渡すことができます。例えば、wrangler dev index.jsのように。このフィールドは、レガシーなbuild.upload.mainフィールド(モジュール形式のWorkersにのみ適用されていました)に置き換わります。

  • rules: array, optional

    rulesフィールドは、モジュールタイプとファイルパターンのマッピングの配列です。特定のファイルをJavaScriptとは異なる方法で解釈するようWranglerに指示します。例えば、テキストのようなコンテンツをテキストファイルとして読み取るためや、コンパイルされたWASMをインスタンス化して実行する準備ができたものとして扱うのに便利です。これらのルールは、確立されたサービスワーカー形式と新しいモジュール形式の両方のWorkersに適用できます。このフィールドは、レガシーなbuild.upload.rulesフィールド(モジュール形式のWorkersにのみ適用されていました)に置き換わります。

非必須フィールド

以前は必須だったいくつかの設定フィールドは、特定の状況でオプションになりました。これらは推測されるか、最適化として追加されることがあります。Wrangler v2を使用する際には、もはや必須のフィールドはなく、必要に応じて徐々に設定を追加できます。

  • name: string

    name設定フィールドは、wrangler devwrangler kv:*コマンドのいずれにも必須ではなくなりました。さらに、コマンドライン引数として--name <name>として渡すこともできます。wrangler publishにはまだ必要です。

  • account_id: string

    account_idフィールドは、いかなるコマンドにも必須ではありません。関連するコマンドは、ログインしているかどうかを確認し、していない場合はログインを促します。ログインすると、アカウントIDが使用され、ログインセッションが期限切れになるまで再度促されることはありません。複数のアカウントIDがある場合は、選択するアカウントのリストが表示されます。

    account_idwrangler.tomlファイルや環境変数CLOUDFLARE_ACCOUNT_IDに設定することもできます。これにより、起動が速くなり、複数のIDがある場合は選択リストをバイパスできます。CLOUDFLARE_API_TOKEN環境変数も、対話的にログインできない状況で便利です - CI/CDでの実行を参照してください。

  • workers_dev boolean, default: true when no routes are present

    workers_devフィールドは、Workerが*.workers.devサブドメインに公開されるべきことを示します。例えば、my-workerというWorkerと、以前に設定された*.workers.devサブドメインusernameがある場合、Workerはmy-worker.username.workers.dev.comに公開されます。このフィールドは必須ではなく、routeまたはroutesが設定されていない場合はデフォルトでtrueになります。ルートが存在する場合は、デフォルトでfalseになります。*.workers.devサブドメインにも、ルートにも公開したくない場合は、workers_devfalseに設定してください。これは、他のWorkerからのみアクセスできるスタンドアロンサービスとしてWorkerを公開する際に便利です(services)。

非推奨フィールド(非破壊的)

いくつかの設定フィールドは非推奨ですが、その存在はまだ破壊的変更ではありません。警告メッセージを読み、新しい設定に移行するための指示に従うことをお勧めします。これらは将来のバージョンで削除され、機能しなくなります。

  • zone_id: string, deprecated

    zone_idフィールドは非推奨であり、将来のリリースで削除されます。これは、route/routesから推測され、wrangler devを使用する際にはdev.hostからもオプションで推測されます。これにより、単一のWorkerを複数のドメインにデプロイすることが簡単になります。

  • build.upload: object, deprecated

    build.uploadフィールドは非推奨であり、将来のリリースで削除されます。その使用は、警告を伴い、警告を取り除くための設定ファイルの書き換えに関する提案を伴います。

    • build.upload.main/build.upload.dirmainフィールドに置き換えられ、サービスワーカー形式とモジュール形式の両方のWorkersに適用されます。
    • build.upload.rulesrulesフィールドに置き換えられ、サービスワーカー形式とモジュール形式の両方のWorkersに適用されます。
    • build.upload.formatはもはや指定されず、wranglerによって自動的に推測されます。

非推奨フィールド(破壊的)

いくつかの設定フィールドは非推奨であり、もはや期待通りに機能しません。エラーメッセージを読み、新しい設定に移行するための指示に従うことをお勧めします。

  • site.entry-point: string, deprecated

    site.entry-point設定は、[site]設定を持つWorkersのエントリーポイントを指定するために使用されました。これは、トップレベルのmainフィールドに置き換えられました。

  • type: rust | javascript | webpack, deprecated

    type設定は、Workerのタイプを指定するために使用されました。これは冗長になり、現在は使用状況から推測されます。type = "webpack"(およびオプションのwebpack_configフィールド)を使用していた場合は、webpack移行ガイドを読んで、プロジェクトを修正し、カスタムビルドを使用してください。

非推奨のコマンド

以下のコマンドは、Wrangler v2以降非推奨となります。

build

wrangler buildコマンドは、Workerをビルドするためにもはや利用できません。

同等の機能は、wrangler publish --dry-run --outdir=path/to/buildで実現できます。

config

wrangler configコマンドは、APIトークンを介して認証するためにもはや利用できません。

OAuth認証を管理するには、wrangler login / wrangler logoutを使用するか、CLOUDFLARE_API_TOKEN環境変数を介してAPIトークンを提供してください。

preview

wrangler previewコマンドは、Workerの一時的なプレビューインスタンスを作成するためにもはや利用できません。

開発中にWorkerを試すには、wrangler devを使用してください。

subdomain

wrangler subdomainコマンドは、workers.devサブドメインを作成するためにもはや利用できません。

Workers & Pages > Workerを選択 > サブドメイン > 変更workers.devサブドメインを作成してください。

route

wrangler routeコマンドは、Workerのルートを構成するためにもはや利用できません。

ルートはwrangler.toml設定ファイルで指定されます。

その他の非推奨の動作

  • Cloudflareダッシュボードで定義されたルートは、Wranglerで定義されたルートと一緒に追加されません。Wranglerで定義されたルートは、wrangler.tomlrouteまたは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.js

    index.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";

Wrangler v1とv2の比較表

コマンド

コマンドv1v2ノート
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削除されました。エラーレポートは対話的に作成されます。

設定

プロパティv1v2ノート
type = "webpack"削除されました。移行するにはこのガイドを参照してください。
type = "rust"削除されました。代わりにworkers-rsを使用してください。
type = "javascript"🚧もはや必要ありません。省略できます。

機能

機能v1v2ノート
TypeScriptwranglerにTypeScriptファイルを渡すと、自動的にesbuildを使用してJavaScriptにトランスパイルされます。
ローカルモードwrangler dev --localは、あなたのWorkerを私たちのネットワークではなく、あなたのローカルマシンで実行します。これはMiniflareによって提供されています。