【Deno】Hello, World!を出力するだけのコマンドを作る
2021/05/25
作りたいコマンドができたので、Denoでコマンドを作成する予習
Hello, World!を出力するだけのコマンド作成する
Denoのバージョン
Dockerでやるのは不都合が出てきたのでMacにHomebrewで直接インストールした
$ brew install deno
$ deno --version
deno 1.10.2 (release, x86_64-apple-darwin)
v8 9.1.269.27
typescript 4.2.2
コマンドの作成
Hello, World!と出力するだけのファイルを作成
cli.ts
console.log("Hello, World!");
権限も特にいらないのでこれで完成
$ deno run cli.ts
Hello, World!
コマンドのインストール
インストール
deno install
でインストールできる
$ deno install cli.ts
もしくはGitHubに上げて
$ deno install --name deno_hello https://raw.githubusercontent.com/ytkg/deno_hello/main/cli.ts
※デフォルトで拡張子を省略したファイル名がコマンド名になるが、mod.ts
やcli.ts
の場合は親ディレクトリ名になるので、--name
オプションでコマンド名の指定をしている
パスを通す
デフォルトで$HOME/.deno/bin
以下に保存されるのでパスを通してあげる
$ echo 'export PATH="$HOME/.deno/bin:$PATH"' >> ~/.bash_profile
$ source ~/.bash_profile
実行
$ deno_hello
Hello, World!
動いた
実行ファイルの中身
~/.deno/bin/deno_hello
#!/bin/sh
# generated by deno install
exec deno run 'https://raw.githubusercontent.com/ytkg/deno_hello/main/cli.ts' "$@"
別のやり方(コンパイル)
コンパイル
$ deno compile cli.ts
もしくはGitHubに上げて
$ deno compile --output deno_hello https://raw.githubusercontent.com/ytkg/deno_hello/main/cli.ts
※デフォルトで拡張子を省略したファイル名がコマンド名になるが、mod.ts
やcli.ts
の場合は親ディレクトリ名になるので、--output
オプションでコマンド名の指定をしている
実行ファイルの移動
deno_helloという実行ファイルが生成されている
$ ls
cli.ts deno_hello
$ mv ./deno_hello $HOME/.deno/bin
実行
$ deno_hello
Hello, World!
OK!
リポジトリ
今回の成果物