Skip to content

Instantly share code, notes, and snippets.

@dezren39
Forked from DarrenN/get-npm-package-version
Last active November 28, 2022 16:30
Show Gist options
  • Star 12 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dezren39/d71e381a3c70ce8463a9471cd2983617 to your computer and use it in GitHub Desktop.
Save dezren39/d71e381a3c70ce8463a9471cd2983617 to your computer and use it in GitHub Desktop.
Extract version from package.json (NPM) using bash / shell
# these can all be npm scripts, but anything can be an npm script
# a
echo $(cat ./package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
# b
echo $(cat ./package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed -E 's/(version)|[:,\",]//g' | tr -d '[[:space:]]')
# c
echo $(node --eval="process.stdout.write(require('./package.json').version)")
# d
node -pe "require('./package.json').version"
# e
jq -r .version ./package.json
# f
npm run version --silent # add version run-script to scripts: ' "version": "echo $npm_package_version" ' # also could access $npm_package_version any other way
# g not clean
npm version
# if published package, to check published package
# h
npm view . version
# i
npm show . version
# j
awk -F\" '/"version":/ {print $4}' package.json
# k
npx -c 'echo "$npm_package_version"'
# l
perl -ne 'print "$1\n" if /"version":\s*"(.*?)"/' package.json
# m
awk '/version/{gsub(/("|",)/,"",$2);print $2}' package.json
# n
sed -nr 's/^\s*\"version": "([0-9]{1,}\.[0-9]{1,}.*)",$/\1/p' package.json
#---
# npm package example, others exist
npm i -g json
# o (requires "npm i -g json")
json version -a < package.json
# p (requires "npm i -g json")
json dependencies -a < package.json | grep : | sed 's/^ *//;s/"//g;s/: /@/;s/,$//'
# q (requires "npm i -g json")
json dependencies -a < package.json | grep : | sed 's/[",]//g;s/: /@/;s/,$//'
# r (requires "npm i -g json")
json devDependencies -a < package.json | grep : | sed 's/^ *//;s/"//g;s/: /@/;s/,$//'
# s (requires "npm i -g json")
json devDependencies -a < package.json | grep : | sed 's/[",]//g;s/: /@/;s/,$//'
#---
@dezren39
Copy link
Author

dezren39 commented Jul 5, 2020

i aggregated the examples from:

I'm not sure which I used yet, they are mostly in the order I found them.

Not sure which is best.

@dezren39
Copy link
Author

installing json as a devdependency worked best for me in the most circumstance and disk space is cheap

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment