Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
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

This comment has been minimized.

Copy link
Owner Author

@dezren39 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

This comment has been minimized.

Copy link
Owner Author

@dezren39 dezren39 commented Sep 21, 2020

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