🕌
Taskfile でバージョンチェックする
背景
普段は Docker で開発しているのですが、 WXT でブラウザ拡張機能を作るときは Docker を使うと色々面倒そうなので Docker 無しで開発することにしました。
バージョン管理ですが、 .nvmrc
や package.json
の engines
とは別に、 test
のときなどに使う(かもしれない)と思い、さくっと Taskfile
でバージョン確認することにしました(コマンド結果と固定値の比較するだけ)。
(2025/01/13 追記)
node
は volta
で管理が良さそう。
Taskfile
echo
の ERROR
, OK
の色は GitHub Copilot が出しただけで、 Zenn だと色はつかないようです。
Taskfile.yml
version: "3"
tasks:
doctor:
desc: "Check workspace version"
cmds:
- task: check-version-equality
vars:
NAME: "pnpm"
WORKSPACE_VERSION:
sh: pnpm -v
EXPECTED_VERSION: 10.0.0
- task: check-version-equality
vars:
NAME: "node"
WORKSPACE_VERSION:
sh: node -v
EXPECTED_VERSION: v23.5.0
check-version-equality:
desc: "Check version equality"
vars:
NAME: "{{.NAME}}"
WORKSPACE_VERSION: "{{.WORKSPACE_VERSION}}"
EXPECTED_VERSION: "{{.EXPECTED_VERSION}}"
cmds:
- echo "Checking workspace version of {{.NAME}}..."
- |
if [ "{{.WORKSPACE_VERSION}}" != "{{.EXPECTED_VERSION}}" ]; then
echo -e "\e[31m[ERROR]\e[0m Workspace version of {{.NAME}} is {{.WORKSPACE_VERSION}}, not {{.EXPECTED_VERSION}}"
exit 1
fi
- echo -e "\e[32m[OK]\e[0m Workspace version is {{.EXPECTED_VERSION}}"
silent: true
$ task doctor
Checking workspace version of pnpm...
[OK] Workspace version is 10.0.0
Checking workspace version of node...
[OK] Workspace version is v23.5.0
$ task doctor
Checking workspace version of pnpm...
[ERROR] Workspace version of pnpm is 10.0.0, not 10.0.X
task: Failed to run task "doctor": exit status 1
Discussion