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向けのフレームワークもいけてるから使ってみて!
loading...