Node.js 默认包管理器 npm 详解
// 引入必要的模块
const { exec } = require('child_process');
const fs = require('fs');
const path = require('path');
// 获取npm全局安装路径的函数
function getGlobalNpmDir() {
return exec('npm config get prefix').then(({ stdout }) => stdout.trim());
}
// 获取npm包的版本信息
function getPackageVersion(packageName) {
const packageJsonPath = path.join(getGlobalNpmDir(), 'lib', packageName, 'package.json');
return new Promise((resolve, reject) => {
fs.readFile(packageJsonPath, 'utf8', (err, data) => {
if (err) {
reject(err);
} else {
try {
const packageJson = JSON.parse(data);
resolve(packageJson.version);
} catch (parseErr) {
reject(parseErr);
}
}
});
});
}
// 使用示例
getPackageVersion('npm').then(version => console.log(`NPM版本: ${version}`));
这段代码首先引入了必要的Node.js模块,然后定义了两个函数:getGlobalNpmDir
用于获取npm的全局安装目录,getPackageVersion
用于获取指定npm包的版本信息。最后,给出了如何使用这两个函数的示例,以获取npm自身的版本。
评论已关闭