どうもSuです。
nodejsで開発しているときに、package.jsonのversionを取得したいときありますよね。
CI/CDで自動的にリリース後のバージョンのタグを作成したりなど、いろんな場面で出てくるのではないかなと思います。
nodejsが入っている環境であれば、こんなshellを書くと簡単に取れます。
node-version.sh
#!/bin/bash
set -euo pipefail
VERSION=$( node -e "console.log(require('./package.json').version)" )
echo $VERSION
shellではなく、nodejsで取りたい場合は以下
const packageJson = require('./package.json');
console.log(packageJson.version);
もし、nodejsがない環境で実行する場合は、以下のようにshellで正規表現を使ってとることもできます。
#!/bin/bash
set -euo pipefail
PACKAGE_JSON="package.json"
VERSION=$(cat $PACKAGE_JSON \
| grep '"version"' \
| awk -F: '{ print $2 }' \
| sed 's/[", ]//g'
)
echo $VERSION
以上、お役に立てれば幸いです。