Cloudflare WorkersでのDeno
Denoモジュールをデプロイ用のCloudflare Workers向けにトランスパイルまたはバンドルする方法を学びます
「Cloudflare WorkersでのDeno」はCoddyKit上の無料Edge Computing with Cloudflare Workers & Denoレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEdge Computing with Cloudflare Workers & Deno学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Edge Computing with Cloudflare Workers & Denoコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
Deno on Cloudflare Workers
Welcome! In this lesson, we'll explore how to bring the power of Deno to Cloudflare Workers. This integration lets you leverage Deno's modern runtime features while benefiting from Workers' global edge network.
You'll learn how to prepare your Deno code so it can run seamlessly on Cloudflare's serverless platform.
Edge Runtime Differences
Cloudflare Workers run in a V8 JavaScript engine environment. While Deno also uses V8, it adds its own APIs (like Deno.readTextFile, Deno.serve) and a secure permission model.
These Deno-specific APIs aren't directly available in the standard Worker runtime. So, how do we make Deno code compatible?
Solution 1: Transpilation
The first key step is transpilation. This is the process of converting source code from one language or version to another while maintaining its functionality.
- TypeScript to JavaScript: Deno often uses TypeScript. Workers need plain JavaScript. Transpilation converts your
.tsfiles to.js. - Modern JS to Older JS: Sometimes, newer JavaScript features might be transpiled down for broader compatibility.
TypeScript Transpilation
Imagine you have a Deno utility written in TypeScript:
// my_util.ts
export function calculateSum(a: number, b: number): number {
return a + b;
}During transpilation, this becomes standard JavaScript, removing type annotations:
// my_util.js (after transpilation)
export function calculateSum(a, b) {
return a + b;
}This JavaScript is now understood by the Worker runtime.
Solution 2: Bundling
The second crucial step is bundling. This combines multiple JavaScript modules and their dependencies into a single, optimized JavaScript file.
- Single File: Workers are often deployed as a single JavaScript file.
- Performance: Bundling reduces the number of files the runtime needs to load, improving startup time.
- Dependency Management: It resolves and includes all necessary code from imported modules.
Deno Utility Function
Here's a simple Deno function. In a real project, this might be in its own module (e.g., utils.ts) and imported. For now, let's see it run directly:
function getGreeting(name: string): string {
return `Hello, ${name}! Welcome to the Edge!`;
}
console.log(getGreeting("CoddyKit Learner"));The Bundling Process
Imagine we have our getGreeting function from the previous scene, perhaps in a file called src/utils.ts, and our main Worker logic in src/worker.ts that imports it.
// src/worker.ts
import { getGreeting } from './utils.ts';
// ... Worker logic ...A bundler will take src/worker.ts as an entry point, resolve the import, transpile any TypeScript, and combine everything into one JavaScript file.
Deno-Powered Worker Output
After bundling, your Deno code, now transpiled to JavaScript and combined into a single file, looks like a standard Cloudflare Worker. This is the file you'd deploy.
Here's a simplified example of what the output might resemble, including our greeting logic:
// worker.js (bundled output)
function getGreeting(name) {
return `Hello, ${name}! Welcome to the Edge!`;
}
export default {
async fetch(request) {
const url = new URL(request.url);
const name = url.searchParams.get("name") || "Guest";
const message = getGreeting(name);
return new Response(message, {
headers: { "content-type": "text/plain" },
});
},
};Deployment with Wrangler
Once your Deno code is transpiled and bundled into a single JavaScript file (e.g., worker.js), you can deploy it using Cloudflare's Wrangler CLI, just like any other Worker.
- Wrangler handles uploading this bundled file to Cloudflare.
- The Cloudflare edge network then runs your JavaScript, effectively executing your Deno-originating logic.
The developer experience is Deno-first, but the deployment target is a standard Worker.
Quick Check
When deploying Deno code to Cloudflare Workers, which two processes are essential to make your Deno modules compatible with the Worker runtime?
Recap: Deno at the Edge
Great job! You've learned how Deno modules can be deployed as Cloudflare Workers.
- Cloudflare Workers run JavaScript, so Deno code needs transpilation (e.g., TypeScript to JavaScript).
- For efficient deployment, multiple Deno modules are combined into a single file through bundling.
- Tools like
esbuildautomate this, turning your Deno project into a standard Worker script.
This allows you to leverage Deno's ecosystem for development while benefiting from the global reach of Cloudflare Workers.
よくある質問
「Cloudflare WorkersでのDeno」レッスンは無料ですか?
はい。「Cloudflare WorkersでのDeno」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Edge Computing with Cloudflare Workers & Denoコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Edge Computing with Cloudflare Workers & Denoコースには全4レッスンが含まれています。
「Cloudflare WorkersでのDeno」で何を学びますか?
Denoモジュールをデプロイ用のCloudflare Workers向けにトランスパイルまたはバンドルする方法を学びます ブラウザで直接実行するハンズオンコードでEdge Computing with Cloudflare Workers & Denoを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Edge Computing with Cloudflare Workers & Denoを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのEdge Computing with Cloudflare Workers & Denoは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「Cloudflare WorkersでのDeno」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このEdge Computing with Cloudflare Workers & Denoレッスンでコードを書いて実行できますか?
はい。すべてのEdge Computing with Cloudflare Workers & Denoレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Cloudflare WorkersでのDeno
- Worker-Denoプロジェクトのセットアップ
- 共有ロジックとユーティリティ
- 統合スタックのデプロイとデバッグ