嘗試構建一個 Node CLI 來執行一些備份任務,包括獲取 NPM 包。我最終撰寫了這個函式:
function getNPNGlobalPackages(cb) {
require('child_process').exec(
'npm list -g --json',
function (err, res, err) {
if (err) return cb(err);
const result = JSON.parse(res);
const packages = result.dependencies;
console.log(packages);
}
);
}
這個結果的問題是我無法編輯輸出,我覺得可以有更好的方法來做到這一點。
輸出:
{
'@ionic/cli': { version: '6.18.0' },
'@nestjs/cli': { version: '8.1.5' },
'@vue/cli-init': { version: '4.5.13' },
'@vue/cli': { version: '4.5.13' },
...
}
當我嘗試獲取時,packages[0]我得到undefined. 我究竟做錯了什么 ?
我的目標是最終擁有類似packagename@version.
uj5u.com熱心網友回復:
包是一個物件。所以,如果你想得到一個值,你必須通過鍵來獲取它(這里你試圖從索引中獲取)。
為了你的最終目標試試這個
const res = Object.keys(packages).map(pkg => `${pkg}@${packages[pkg]['version']}`);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/393341.html
