Получить точную установленную версию из пакета npm

Вы не можете сделать это с оператором ? :, так как он может обрабатывать только одно значение, а два присваивания генерируют два значения.

Вместо этого используйте реальный оператор if:

$ echo test|awk '{ if ($2 != "") { o="ABC"; r="123" } else { o="123"; r="ABC" }} END{ print "o:"o" r:"r}'
o:123 r:ABC
0
04.03.2020, 18:09
2 ответа

Чтобы NPM получил список версий пакетов, вы должны сначала cd в папку, где находится ваше приложение NPM.

Затем запустите (из папки, в которой вы запускаете свои приложения npm)

npm ls --depth=0 

Если вы ничего не видите, попробуйте команду с глобальными настройками

npm -g ls --depth=0
0
28.04.2021, 23:21

Следующий скрипт ищет файл package.json в каталоге, где он выполняется, для указанного пакета и распечатывает его версию:

# getPackageVersion.sh
# Searches the package.json for a specific package and prints out its version
#
# Usage:
# chmod +x getPackageVersion.sh
#./getPackageVersion.sh <package_name>

packageName=$1

if [ ! -f./package.json ]; then
    echo "package.json file not found in current directory."
    exit
fi

if [ -z "$packageName" ]
then
    echo "No package name given."
    exit
fi

packageJsonOutput=$(cat package.json | grep "\"$packageName\": \"*\"")
version=(${packageJsonOutput//:/ })
version=${version[1]//\"/}

if [ "$version" == "" ]
then
    echo "Package not found."
    exit
fi

echo "$version"

Использование

chmod +x getPackageVersion.sh
./getPackageVersion.sh <package_name>

Пример

$ cd ~/sw/your-project/
$./getPackageVersion.sh debug
4.3.1
0
28.04.2021, 23:21

Теги

Похожие вопросы