Deno入門
Denoとは?
- 読み方「での」らしい
- JavaScript、TypeScriptの動作環境
- 作者はNode.jsと同じ人(ライアン・ダール)
- Node.jsの後悔をもとに再設計をしたもの
- JavaScriptのエンジンにはV8を採用
Node.jsとの違い
TypeScriptのビルドイン
Node.jsでTypeScriptを利用する場合npmで外部モジュールが必要だった
標準ライブラリでasync/awaitをサポート
非同期関数はコールバックではなくPromiseが返る
Secure Model
デフォルト起動でネットワーク、ファイルへのアクセスなどの外へのアクセスが行えない
ES Modulesに統一
requireが削除されモジュールの取り込み構文がimportに統一された
絶対パス、相対パス、URLが利用できる
パッケージという概念の破棄
npmの代わりとなるものはなく、外部モジュールを利用する場合import文にurlを渡すことで利用できる
インストール方法
macOS/Linux
curl -fsSL https://deno.land/x/install/install.sh | sh
実行すると $HOME/.deno に
バイナリがインストールされる
パスは手動で通す必要があるので注意
Windows
iwr https://deno.land/x/install/install.ps1 -useb | iex
まだ試してない
サンプルコードを動かす
const url = Deno.args[0]; const res = await fetch(url); const body = new Uint8Array(await res.arrayBuffer()); await Deno.stdout.write(body);
deno run --allow-net sample1.ts https://google.co.jp
--allow-net
がインターネットの利用許可
なしで実行するとPermissionDeniedと表示される
今までとちょっと変わった実行
deno run https://deno.land/std/examples/welcome.ts
こんな風にURLでソースを指定して
実行することもできる
その他便利なツール紹介
デバッガ
chromeの開発ウィンドウでデバッグが可能
ブレークポイントも使える!!
使う場合実行時に
--inspect-brk
--inspect
をつけるだけ
コードフォーマット
TypeScript、JavaScriptの
コードフォーマッター付属
# カレントディレクトリ以下のコードをフォーマット deno fmt # ファイルを指定してのフォーマット deno fmt myfile1.ts # フォーマットに問題のあるファイルと場所の割り出し deno fmt --check `