Closed9

Denoのテンプレートリポジトリを作る

kawarimidollkawarimidoll

毎回coc.nvimの設定が面倒なので、リポジトリに入れてしまう

.vim/coc-settings.json
{
  "deno.enable": true,
  "deno.lint": true,
  "deno.unstable": true,
  "prettier.disableLanguages": ["typescript"],
  "typescript.format.enabled": false
}
kawarimidollkawarimidoll

dotenvも結構使うのでファイルを作っておく
Safe Modeを使うため、.env.exampleに対応する環境変数の名前を書いておく

.env.example
SECRET_TOKEN=
env.ts
import { config } from "https://deno.land/x/dotenv@v2.0.0/mod.ts";

const {
  SECRET_TOKEN,
} = config({ safe: true });

export { SECRET_TOKEN };
kawarimidollkawarimidoll

各種ツールがDenoリポジトリの判定にdeps.tsの存在を見ているっぽいので空ファイルとして保存しておく

deps.ts
// dependencies wil bel here!
kawarimidollkawarimidoll

deno fmtdeno lintが楽に実行できるようなシェルスクリプトを追加
テストの実行やhookへの追加はひとまず様子見

ci.sh
#!/bin/bash

set -x

deno fmt
deno lint
# deno test
kawarimidollkawarimidoll

あーいや、ちゃんと読んでなかった
https://zenn.dev/uki00a/books/effective-deno/viewer/task-runner

Velociraptorを使おう

❯ deno install -qAn vr https://deno.land/x/velociraptor@1.0.1/cli.ts 
✅ Successfully installed vr
/Users/kawarimidoll/.deno/bin/vr
ℹ️  Add /Users/kawarimidoll/.deno/bin to PATH
    export PATH="/Users/kawarimidoll/.deno/bin:$PATH"

scripts.ymlを定義

scripts.yml
allow:
  - write=app.log
  # - env

scripts:
  start:
    desc: run main script
    cmd: main.ts
  # test: deno test
  lint: deno lint
  format: deno fmt
  pre-commit:
    cmd:
      - vr lint
      - vr format
    gitHook: pre-commit

これでvrを実行すればhookが作成される

❯ vr

  ✅ Git hooks successfully installed
  

  🦖 Available scripts
  
    • start
    run main script
    $ main.ts

    • lint
    $ deno lint

    • format
    $ deno fmt

    • pre-commit
    Runs at pre-commit
    $ vr lint, vr format
    
  To run a script pass its name as the first argument to the vr command:
  
  $ vr start
    
  Any additional arguments will be passed to the script.

Denoのセキュリティ思想は優れているとはいえ、--allow-writeとかのオプションをいちいち足すのは面倒だったので助かる

このスクラップは2021/06/20にクローズされました