天然パーマです。

Cloudflare WorkersのCLI、Wranglerの2.0がリリースされたぞ!

Cloudflare WorkersのCLIツールであるWranglerの「v2.0」がリリースされました。 去年の11月に「Beta」版としてCloudflare公式のBlogでアナウンスがありましたが、それの正式版です。 何も貢献していませんが、ずっとリポジトリをウォッチしていたので、感慨深いです。 Cloudflareのブログには昨日、「10 things I love about Wrangler v2.0」という記事がポストされました。 ということで、今回はこちらの記事の10個のことを僕なりの解釈で紹介していきましょう。

あ、ちなみに、僕はCloudflare Workersが好きなだけで、Cloudflareの関係者とか回し者ではないです!

1.インストールが簡単!

Wrangler「1」の時代はこのコマンドでした。

npm install -g @cloudflare/wrangler

「@cloudflare」のスコープの中に入っています。これ、つけ忘れて「wrangler」にすると、関係ない別パッケージがインストールされちゃってました。また、グローバルにインストールすることが推奨されています。

そして、今回のリリースによってこちらになりました!!!!

npm install wrangler

短い!最高! これで他のnpmパッケージと似たように使えますし、CPUアーキテクチャを超えて動きます。 もともと便利だったのが、より便利になりましたね!

ちなみに!このWrangler「2」は、完全に「1」とは別のそれ用のリポジトリ「github.com/cloudflare/wrangler2」で開発されてましたね。だから別物。この1から2へのバージョンアップはだいぶ大きいのです。

2. ゼロコンフィグ

これがマジですごい。これまではwrangler.tomlという設定ファイルを参照していましたが、開発サーバーを動かすだけなら、それ要りません!というか、npxで動かすだけなら、npm initすら要りません!

ぶっちゃけ、2行でコードが書けて、開発サーバー起動します。

echo "export default { fetch: () => new Response('Hello Wrangler') }" > index.js
npx wrangler dev index.js

すごくないっすか??

3. ワンラインでプロジェクトセッティング

これで実用的なプロジェクト作れます。

npx wrangler init my-worker -y

ちなみに!!!! GitHubとかにおいたサードパーティのスターターテンプレートを取ってきて初期化するコマンドが、Wrangler1についていたんですが、廃止になりました。

wrangler generate my-app https://github.com/honojs/hono-minimal

これが廃止。代わりに、Cloudflareの中の人、lukeedがつい先ほどcreate-cloudflareというパッケージを公開していました。

これがwrangler generateの代わりになります。公式のドキュメントもいつの間にか書き換えられています。

npm init cloudflare my-app https://github.com/honojs/hono-minimal

こうです!試してみてね!

4. --localモード

Wranglerの開発サーバーって、基本、グローバル上のCloudflareで動かして、それをローカルで見えるようにプロキシしてるんですね。で、今回Wrangler2には完全にローカルで実行する機能がつきました。

それを可能にしたのが「Miniflare」というCloudflare Workersの完全再現シミュレーターです。

これはmrbbotが勝手に始めたらしく、ところができがよくて、最終的にはWrangler本体に取り込まれ、mrbbotもCloudflareの人になったというなんかすごい夢がある。このひと。

ってかさっき紹介したlukeedとmrbbotの実装力とアイデアがヤベえ。

5. ログをtailできるよー

CloudflareにデプロイされたワーカーのログをWrangler使えば、リアルタイムにtail -fみたいなことできます。すごい!

6. 警告とかエラーとかが見やすいよー

設定のdeprecationとかも指摘してくれるよ!

7. オンデマンド開発ツール

デバグのためのツールがあるよー。Chromeでchrome://inspect使ってデバグできる。使ったことないので、使ってみるぞ!

ちなみになんだけどさ、Wrangler2の起動画面がいけてて、立ち上げたあとターミナルで「B」を押すとブラウザが開いて「http://localhsot:8787」とか開発ページが開くの。便利!

8. モダンなモジュールシステム

え、ポリフィルなしで、node.jsのライブラリが直接使えるってマジで? ええええええええ。まだ実現されてないっぽいけど、マジで?

ちなみに!ちょっと関係ない話なんだけどさ、Wrangler1と比べてだいぶビルドが賢くなってるのよ。 Wrangler1の時代はWebpack、それも「4」を内部で使ってるっぽくて、結構ストレスだったの。 で今回のWrangler2では内部が「esbuild」!!!!速いは正義!

9. たくさんのIssuesを乗り越えてきた

リポジトリをウォッチしていたのですが、開発の活動が活発で、十分テストされています。

10. コミットメント

CloudflareはWranglerを大切にしているし、Wranglerは最強のDX = Developer Experienceを提供しているぜ! 将来にも期待せよ!

まとめ

Wranglerはまじで、DXが最高。ちなみにS3みたいな、S3互換らしいストレージ「R2」もそろそろベータで使えるようになりそうなんで、期待。ってかアーリーアクセスほしーーーーーー。あああ、そういえばCloudflare Workersのランタイム自身がOSSになるってアナウンスもあったね。やべえ!

あと最後に宣伝。ついでにHonoっていうCloudflare向けのフレームワークもいけてるから使ってみて!