【发布时间】:2020-08-16 15:56:22
【问题描述】:
我正在尝试获取任何特定 NPM 包的所有主要版本的列表。
我可以通过以下API找到包括major和experimental版本列表的版本 https://registry.npmjs.org/<pkg_name>
但无法区分主要版本与实验或非主要版本的包。我想知道我该怎么做。
我尝试过使用正则表达式,但没有帮助。
这是我的代码
const data = axios.get(`https://registry.npmjs.org/${packageName}`)
const regex = /(\d*)+[.]+(\d*)+[.]+(\d*)/g;
let versions: {}[] = [];
Object.keys(response.data).forEach((data: any) => {
if (data.match(regex)) {
versions.push(versionData);
}
});
【问题讨论】:
-
专业是什么意思?大概是
x.0.0,没有任何-alpha或其他任何东西,这似乎很容易识别。你试过什么?您的实施有什么具体问题吗? -
我正在尝试在程序中获取它。我得到像
x.0.0或x.0-alpha.0这样的所有版本。但我只需要像x.x.x这样的主要版本,其中x 是基本上表示主要版本的数字。 -
这似乎是一件很容易过滤的事情 - 你的代码在哪里,它有什么问题?
-
我已经用我的代码更新了这个问题。请看一下
-
你是什么意思“没有帮助”? 输出是什么?给出一个实际的minimal reproducible example - 例如,HTTP 请求是无关紧要的,并且似乎没有定义 versionData。我还建议使用例如regex101.com 以确保您的模式按预期工作。
标签: javascript node.js api npm