如何从 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
。