簡體   English   中英

查詢有關作用域npm包的特定版本的信息

[英]Querying information about specific version of scoped npm package

我可以成功查詢特定NPM包的特定版本的元信息,如下所示:

GET https://registry.npmjs.org/<name>/<version>

例如: https//registry.npmjs.org/camelcase/2.1.1

但對於像@angular/core這樣的范圍包,這不起作用。 我嘗試了以下所有方法,但都失敗了:

查詢特定版本的作用域包的正確方法是什么?

您可以通過bash命令執行此操作:

npm view @angular/core/6.1.10

因此,npm正在為范圍包的請求添加一些身份驗證。 為此,您必須在本地目錄中擁有有效的package.json。

當然,最壞的情況是,你可以做一個process.spawn()來運行npm命令。

僅供參考,我嘗試使用npm-registry-client軟件包和我的npm憑證:

 var RegClient = require('npm-registry-client') var client = new RegClient({ username: 'mememe', password: 'xxxxx' }) var uri = "https://registry.npmjs.org/@angular/core/6.1.10" var params = {timeout: 1000} client.get(uri, params, function (error, data, raw, res) { console.log(data); }) 

我得到了這個:

info attempt registry request try #1 at 09:52:09
http request GET https://registry.npmjs.org/@angular/core/6.1.10
http 401 https://registry.npmjs.org/@angular/core/6.1.10
WARN notice ERROR: you cannot fetch versions for scoped packages

看起來他們不允許特定的版本查詢,但根據@ RobC的評論,他們確實允許抓取整個存儲庫的信息,所以你可以做這個客戶端:

 url = 'https://registry.npmjs.org/@angular%2fcore'; const fetch = require('node-fetch'); fetch(url).then(response => response.json()).then(results => { console.log(results.versions['6.1.10']); }); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM