-
-
Save DarrenN/8c6a5b969481725a4413 to your computer and use it in GitHub Desktop.
Extract version from package.json (NPM) using bash / shell
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Version key/value should be on his own line | |
PACKAGE_VERSION=$(cat package.json \ | |
| grep version \ | |
| head -1 \ | |
| awk -F: '{ print $2 }' \ | |
| sed 's/[",]//g') | |
echo $PACKAGE_VERSION |
This worked for me
cat package.json | grep \"version\" | cut -d'"' -f 4
node -p -e "require('./package.json').version"
cat package.json | jq -r '.version'
works on github actions
Easier:
jq -r .version package.json
real 0m0,021s
user 0m0,020s
sys 0m0,000s
If someone uses image based on ubi-minimal
- which doesn't have jq
, grep
or even sed
- use this script:
VERSION=$(cat package.json | tr -d '\n' | tr -d ' ' | cut -d'"' -f4)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I just wanted to add an alternative solution I came up with: https://github.com/optum/semver-cli
This is a tool dedicated to getting/setting/incrementing semantic versions. It also has the ability to synchronize various code files as you increment which then makes it easier to access the version from code in different ways.
.github/version.yml
src/version.js
README.md
package.json
VERSION
Then to get it from the shell:
VERSION=$(semver get)
To get it in code:
main.js
And
packagej.son
,package-lock.json
,src/version.js
,README.md
and theVERSION
file are all in sync with each other and can be incremented simultaneously with the following command:Which will set them all to
0.2.0
of course.