Closed7
Denoでコマンドを作る
deno install で、~/.deno/bin/xxxxx に実行ファイルが置かれて実行可能になる。
~/deno/cli.ts にhelloworldを書いて、
deno install cli.ts
とやったら、~/.deno/bin/deno ができた。
あれーと思ったけど、ドキュメントに理由があった。
実行可能ファイル名を変更するには、-n/ を使用します--name。
deno install --allow-net --allow-read -n serve https://deno.land/std/http/file_server.ts
実行可能ファイル名はデフォルトで推測されます。
URL パスのファイル語幹を取得しようとします。上の例は「file_server」になります。
ファイルステムが「main」、「mod」、「index」、「cli」などの一般的なもので、パスに親がない場合は、親パスのファイル名を取得します。それ以外の場合は一般名で解決します。
結果の名前に「@...」接尾辞が付いている場合は、それを取り除きます。
cli.ts は一般的なので親のdenoがコマンド名になったっぽい。
-nで名前をつけたらちゃんと動いた
~/deno via v21.6.1
❯ deno install ./cli.ts -n helloworld
✅ Successfully installed helloworld
/Users/tak/.deno/bin/helloworld
~/deno via v21.6.1
❯ rehash
~/deno via v21.6.1
❯ helloworld
hello world
~/deno via v21.6.1
❯
deno uninstall で削除
~/.deno/bin/ の下に置かれるファイルはペラいラッパー
❯ cat ~/.deno/bin/helloworld
#!/bin/sh
# generated by deno install
exec deno run --no-config 'file:///Users/tak/deno/cli.ts' "$@"
cliffyってのがあるらしい。
このスクラップは2024/02/23にクローズされました