Closed5

興味本位でDenoのセットアップ

taichi fukumototaichi fukumoto

とりあえずインストール

公式のInstalationを参考にインストールする。
今回はHomebrewでインストールした。

$ brew install deno

インストールが完了したら、バージョンを確認してみる。

$ deno --version
# or
$ deno -V
Output
deno 1.12.1 (release, aarch64-apple-darwin)
v8 9.2.230.14
typescript 4.3.5

バージョンが確認できたらOK。
--versionだと、使用されているV8やTypeScriptのバージョンも表示してくれる。

taichi fukumototaichi fukumoto

Denoのバージョンを変更する

Denoのバージョンを変更するときは、アップグレード・ダウングレードに関わらずdeno upgradeコマンドを使用する。

Terminal
# 最新バージョンへのアップグレード
$ deno upgrade

# 指定したバージョンに変更
$ deno upgrade --version 1.0.1
taichi fukumototaichi fukumoto

サンプルコードを動かす

以下のコマンドを実行して、ブラウザ上にあるサンプルコードを動かしてみる。

Terminal
$ deno run https://deno.land/std/examples/welcome.ts
Output
Download https://deno.land/std/examples/welcome.ts
Warning Implicitly using latest version (0.102.0) for https://deno.land/std/examples/welcome.ts
Download https://deno.land/std@0.102.0/examples/welcome.ts
Check https://deno.land/std/examples/welcome.ts
Welcome to Deno!

Welcom to Deno!と表示されれば成功

ちなみに、サンプルコードの中身はただのconsole.logだった。

deno.land / std@0.102.0 / examples / welcome.ts
console.log("Welcome to Deno!");
taichi fukumototaichi fukumoto

Deno で Hello World

任意のディレクトリにhello.tsなど適当な名前でファイルを作成する。
作成したhello.tsファイルの中に以下のサンプルコードを貼り付ける。

hello.ts
import { serve } from "https://deno.land/std@0.102.0/http/server.ts";
const s = serve({ port: 8000 });
console.log("http://localhost:8000/");
for await (const req of s) {
  req.respond({ body: "Hello World\n" });
}

コードの内容としては、Webサーバーを起動し、Hello Worldと表示するだけ。
ファイルを保存したら、以下のコマンドでファイルのコードを実行する。

Terminal
$ deno run --allow-net hello.ts
Output
http://localhost:8000/

ネットワークへのアクセスを許可するために--allow-netフラグが必要なので注意する。
コンソールに表示されたhttp://localhost:8000/にアクセスすると、Hello Worldの表示がされていると思う。

taichi fukumototaichi fukumoto

VSCodeの設定

Denoはインポートの仕方などが特殊なので、VSCodeの設定をしないと波線が出まくる。

拡張機能のインストール

Deno(download.vscode-deno)という拡張機能をインストールする。公式サイトはこちら

ワークスペースの設定

プロジェクト直下に、.vscodeディレクトリ(ワークスペースの設定に関するものを格納する)を作成し、settings.jsonに以下の内容を記述する。

.vscode/settings.json
{
  "deno.enable": true
}

基本的には、Denoを使用するプロジェクトだけDenoの拡張機能をONにすることが推奨されている。

このスクラップは2021/07/22にクローズされました