我在构建脚本中检查全局安装的 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);
}
Run Code Online (Sandbox Code Playgroud)
我想以类似的方式检查全局安装的 npm 版本。如何检索全局安装的 npm 版本?
Bra*_*ith 10
这并不漂亮,但这可以解决问题:
var exec = require('child_process').exec,
npmVersion;
exec('npm -v',
function (error, stdout, stderr) {
npmVersion = stdout;
});
Run Code Online (Sandbox Code Playgroud)
请注意,它是异步的,因此您必须在回调中进行 npm 比较,但 stdout 中包含的值应该是 semver 的有效输入。
小智 5
可以简单地这样做。
const { execSync } = require('child_process');
const actualNpmVersion = execSync('npm -v').toString().trim();
const expectedNpmVersion = require('./package.json').engines.npm;
if (!semver.satisfies(actualNpmVersion, expectedNpmVersion)) {
fail('Incorrect npm version: expected ' + expectedNpmVersion + ', but was ' + actualNpmVersion);
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2127 次 |
最近记录: |