[英]Get installed version of npm from node script?
我在構建腳本中檢查全局安裝的Node版本:
var semver = require('semver');
var packageJson = require('./package.json');
var expectedVersion = packageJson.engines.node;
var actualVersion = process.version;
if (semver.neq(expectedVersion, actualVersion)) {
fail('Incorrect Node version: expected ' + expectedVersion + ', but was ' + actualVersion);
}
我想以類似的方式檢查全局安裝的npm版本。 如何檢索全局安裝的npm版本?
它不漂亮,但這將成功:
var exec = require('child_process').exec,
npmVersion;
exec('npm -v',
function (error, stdout, stderr) {
npmVersion = stdout;
});
請注意,它是異步的,所以你必須在回調中進行npm比較,但是stdout中包含的值應該是semver的有效輸入。
如果用“類似的方式”表示檢查npm的package.json文件,那么你必須知道它所在的文件系統中的位置。 這意味着知道如何安裝npm:它可以通過像nvm
或n
這樣的管理工具,也可以通過你的操作系統軟件安裝工具或包管理器,或者它可以只是在任意目錄中。
可能最簡單的方法是跳過嘗試查找npm的package.json文件,而只是使用node的內置Child Process模塊執行npm -v
並在變量中捕獲輸出,然后根據需要使用semver進行比較。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.