从 npm 包中获取准确的安装版本

从 npm 包中获取准确的安装版本

如何从 Fedora 发行版的 Express 应用程序中的 package.json 中找到软件包的确切安装版本?

我可以查看 package-lock.json 但有没有更简单的方法,因为它很大?

我试过了

npm list

但它没有安装,如果没有必要我不想安装它。

有什么简单的方法可以做到这一点吗?

答案1

为了让 NPM 获取软件包版本列表,您必须首先 cd 到 NPM 应用程序所在的文件夹。

然后运行(从运行 npm 应用程序的文件夹)

npm ls --depth=0 

如果您没有看到任何内容,请尝试使用全局设置的命令

npm -g ls --depth=0

答案2

以下脚本在执行目录中搜索 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

答案3

如果您使用yarn作为包管理器,yarn.lock包含在命令运行期间解析的确切版本yarn install

相关内容