mirror of
https://github.com/tj/n.git
synced 2024-11-24 19:46:56 +01:00
If jq
is installed, use it to get values from package.json (#810)
`jq` is a popular choice for being installed, especially on CI machines, and using it to read engines from package.json is faster than running node.
This commit is contained in:
parent
7872fd0ad6
commit
b496b82ef3
16
bin/n
16
bin/n
@ -1084,9 +1084,14 @@ function get_package_engine_version() {
|
|||||||
g_target_node=
|
g_target_node=
|
||||||
local filepath="$1"
|
local filepath="$1"
|
||||||
verbose_log "found" "${filepath}"
|
verbose_log "found" "${filepath}"
|
||||||
command -v node &> /dev/null || abort "an active version of node is required to read 'engines' from package.json"
|
|
||||||
local range
|
local range
|
||||||
range="$(node -e "package = require('${filepath}'); if (package && package.engines && package.engines.node) console.log(package.engines.node)")"
|
if command -v jq &> /dev/null; then
|
||||||
|
range="$(jq -r '.engines.node // ""' < "${filepath}")"
|
||||||
|
elif command -v node &> /dev/null; then
|
||||||
|
range="$(node -e "package = require('${filepath}'); if (package && package.engines && package.engines.node) console.log(package.engines.node)")"
|
||||||
|
else
|
||||||
|
abort "either jq or an active version of node is required to read 'engines' from package.json"
|
||||||
|
fi
|
||||||
verbose_log "read" "${range}"
|
verbose_log "read" "${range}"
|
||||||
[[ -n "${range}" ]] || return 2
|
[[ -n "${range}" ]] || return 2
|
||||||
if [[ "*" == "${range}" ]]; then
|
if [[ "*" == "${range}" ]]; then
|
||||||
@ -1474,6 +1479,13 @@ function show_diagnostics() {
|
|||||||
echo_red "Neither curl nor wget found. Need one of them for downloads."
|
echo_red "Neither curl nor wget found. Need one of them for downloads."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
printf "\njq\n"
|
||||||
|
if command -v jq &> /dev/null; then
|
||||||
|
command -v jq && jq --version
|
||||||
|
else
|
||||||
|
echo "jq not found, can be used to get package.json values faster than node"
|
||||||
|
fi
|
||||||
|
|
||||||
printf "\nuname\n"
|
printf "\nuname\n"
|
||||||
uname -a
|
uname -a
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user