0
我们有一个NPM项目X.我想获得项目中所有依赖项以及他们所需的最小Node.js(引擎)版本的清单。获取所有NPM依赖项的列表最小值node.js引擎版本
我该怎么做?
当然,动机是发现我们需要在开发和生产中运行的最低Nodejs版本。
npm ls | grep "engines"
类似的东西,除了上面的都不行,希望有一些更强大的
我们有一个NPM项目X.我想获得项目中所有依赖项以及他们所需的最小Node.js(引擎)版本的清单。获取所有NPM依赖项的列表最小值node.js引擎版本
我该怎么做?
当然,动机是发现我们需要在开发和生产中运行的最低Nodejs版本。
npm ls | grep "engines"
类似的东西,除了上面的都不行,希望有一些更强大的
我能做到这一点,像这样:
let npm = require('npm');
npm.load({}, function(err, npm) {
if(err) throw err;
npm.config.set('global', false); // => we don't want to consider global deps
npm.commands.list([], true, function(err, pkgInfo) {
let enginesList = Object.keys(pkgInfo.dependencies).map(function(k){
return {
dep: k,
engines: pkgInfo.dependencies[k].engines || {}
}
});
enginesList.forEach(function(val){
console.log(val.dep + ' => ', val.engines);
});
});
});
我不知道是什么你的意思是“它们需要的最小Node.js(引擎)版本。” AFAIK无法派生或计算依赖关系的最小必需Node版本。软件包作者必须在他们的项目中指定引擎版本,并不是所有的作者都会这样做。 – LINKIWI
对,但是对于所有package.json文件,其中engines.node *是*的定义,我想收集信息 –
NPM没有内置cmd,这将有助于AFAIK。您可以编写一个节点脚本来遍历node_packages目录,解析所有package.json的json并搜索引擎值,返回最小的引擎。 – magreenberg