開発覚書はてな版

個人的な開発関連の備忘録

【VSCode・Deno】拡張機能:Remote - Containers で Deno の開発環境を構築

概要

Visual Studio Code拡張機能「Remote - Containers」で Deno の開発環境を構築してみました。

marketplace.visualstudio.com

Remote - Containers でDockerfile使った場合の設定方法は以下の記事を参照してください。 kakkoyakakko2.hatenablog.com

Denoとは

deno.land

  • Node.jsの後継的なもの。
  • TypeScriptベースでの開発。
  • import はURL指定に変更。Go言語チックになっています。
  • ファイルアクセス、ネットアクセスなどの制限が可能

検証環境

サンプルソース

.devcontainer\Dockerfile

FROM mcr.microsoft.com/vscode/devcontainers/base:ubuntu-18.04

# user
USER vscode

# install deno
RUN curl -fsSL https://deno.land/x/install/install.sh | sh

# env
ENV DENO_INSTALL /home/vscode/.deno
ENV PATH=$DENO_INSTALL/bin:$PATH

.devcontainer\devcontainer.json

{
  "name": "Deno Sample",
  "dockerFile": "Dockerfile",
  "appPort": [8080],
  "remoteUser": "vscode",
  "settings": {
    "terminal.integrated.shell.linux": "/bin/bash"
  },
  "extensions": [
  ]
}

main.ts

import { serve } from "https://deno.land/std@0.50.0/http/server.ts";
for await (const req of serve({ port: 8080 })) {
  req.respond({ body: "Hello World\n" });
}

実行コマンド

Visual Studio Code上でRemote - Containersを起動中に以下のコマンドを実行してください。 deno run --allow-net main.ts

実行結果

f:id:kakkoya:20200517194953p:plain

f:id:kakkoya:20200517145437p:plain

感想

  • Visual Studio Code + Dockerをインストール済みのPCに簡単にDenoの開発環境の構築が出来ました。
  • DenoはTypeScriptベースだったり、パッケージ管理などが簡単になっていたりするので今後も情報を追っていきたいです。
  • NestJSあたりがすぐ対応してくれるとありがたいなぁ。

サンプルソース一式

github.com