NPM package API:如何用“@”查询一个包?

NPM package API: how to query a package with "@"?

您可以使用 NPM public API 查询 NPM 包。例如。查询包 react:

curl "https://api.npms.io/v2/package/react"

这很好用。参见 https://api-docs.npms.io/#api-Package-GetPackageInfo

但是如何查询范围内的包,即以“@”为前缀?

curl 'https://api.npms.io/v2/package/@types/react-router-dom'

这行不通。

您只需要URL-对名称进行编码:

https://api.npms.io/v2/package/%40types%2Freact-router-dom

关键部分似乎是对 / 进行编码,因此该名称不被视为两个路径段,而不是 @ 本身:

$ curl 'https://api.npms.io/v2/package/@types%2Freact-router-dom' | jq '.collected.metadata.name'
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  6907    0  6907    0     0  66413      0 --:--:-- --:--:-- --:--:-- 66413
"@types/react-router-dom"