📝

Deno で Zenn CLI を使う設定

に公開

Zenn CLI は Node.js で使う前提になっていますが、 Deno で使ってみました。

deno.json

安全のため、許される権限を厳しめに取っています。環境によってはまだ止まるかもしれません。

{
  "imports": {
    "zenn-cli": "npm:zenn-cli@^0.2.3"
  },
  "tasks": {
    "zenn": "deno run --allow-read=.,/proc/version,/proc/self,/.dockerenv,\"$HOME/.config\",\"$USERPROFILE\\.config\" --allow-write=.,\"$HOME/.config\",\"$USERPROFILE\\.config\" --allow-net=0.0.0.0,registry.npmjs.org:443,zenn.dev:443 --allow-env --allow-sys=homedir,osRelease zenn-cli"
  }
}

※ Windows でも Podman でも使えるように更新しました。

解説

コマンド引数の指定について解説します。

  1. JSON ファイルの文字列中に引用符を使うのにバックスラッシュを使います (一重引用符を使ってもよかったので個人の好み)。

  2. Deno では Windows でも $~ で通りました (%~%$env:~ の使用は不要)。

  3. 環境変数単独でパスに使うと変数が未定義の場合にエラーを食らうので、可能ならサブディレクトリを指定します (変数が未定義だとルートからのパスになってしまうのですが条件判断ができないと無理)。

Discussion