如何获取内部JFrog Artifactory中npm-virtual仓库的所有NPM包列表?
获取JFrog Artifactory NPM虚拟仓库所有包列表的方法
方法1:调用Artifactory REST API(推荐)
直接用curl请求Artifactory的NPM专属API,即可获取所有包名列表:
curl -u <用户名>:<密码> https://artifactory.xyz.com/artifactory/api/npm/npm-virtual/_all_packages
如果你的Artifactory已配置API密钥,也可以用密钥替代用户名密码:
curl -H "X-JFrog-Art-Api:<你的API密钥>" https://artifactory.xyz.com/artifactory/api/npm/npm-virtual/_all_packages
返回结果会以换行分隔所有包名。
方法2:使用JFrog CLI
若已安装JFrog CLI并完成Artifactory实例配置,可通过以下命令筛选出所有NPM包:
# 首次使用需配置Artifactory实例 jf rt config --url=https://artifactory.xyz.com/artifactory --user=<用户名> --apikey=<API密钥> # 搜索并提取唯一包名 jf rt search "npm-virtual/*" --format=json | jq -r '.[] | .path | split("/")[1]' | sort | uniq
说明:jf rt search会返回仓库内所有文件,通过jq提取路径中的包名(NPM包在仓库中的路径格式为npm-virtual/<包名>/<版本>/...),最后去重排序得到唯一的包名列表。
关于你之前的npx命令报错
你执行的npx npm-registry-fetch ls报错,是因为npm-registry-fetch工具本身没有ls可执行命令,它的定位是单独获取单个包的元数据,并非用来批量列出所有包。
内容的提问来源于stack exchange,提问作者vdaemoni
相关产品推荐
相关产品推荐

