Npm 如何使用纱线升级所有范围内的软件包?
是否可以使用软件包管理器升级myNpm 如何使用纱线升级所有范围内的软件包?,npm,yarnpkg,Npm,Yarnpkg,是否可以使用软件包管理器升级mypackage.json的dependencies部分中所有特定范围的软件包 例如: yarn upgrade @scope/* 这将升级Thread.lock和package.json文件中的所有作用域包。由于目前无法使用Thread执行此操作,因此我编写了一个非常简短的节点脚本来执行您想要的操作: var fs = require('fs'); var child_process = require('child_process'); var filte
package.json
的dependencies部分中所有特定范围的软件包
例如:
yarn upgrade @scope/*
这将升级
Thread.lock
和package.json
文件中的所有作用域包。由于目前无法使用Thread执行此操作,因此我编写了一个非常简短的节点脚本来执行您想要的操作:
var fs = require('fs');
var child_process = require('child_process');
var filterRegex = /@angular\/.*/;
fs.readFile('./package.json', function(err, data) {
if (err) throw err;
var dependencies = JSON.parse(data)['dependencies'];
Object.keys(dependencies).forEach(function(dependency) {
if (filterRegex.test(dependency)) {
console.log('Upgrading ' + dependency);
child_process.execSync('yarn upgrade ' + dependency);
} else {
console.log('Skipping ' + dependency);
}
});
});
下面是对其作用的快速解释:
- 它从终端当前所在的目录加载
package.json
- 然后,我们解析
包.JSON的JSON,并获得
键的“依赖项”
- 对于每个依赖项,我们运行指定为
的正则表达式(如果您需要更改此项或想要解释正则表达式语法,我将使用进行测试。我使用filterRegex
作为正则表达式的示例前缀)@angular
- 如果依赖项匹配,我们运行
并记录它纱线升级[dependency]
- 否则,我们将记录它已被跳过
纱线更新
,然后选择要更新的软件包。显示:
请改用
纱线升级交互式。在当前版本v1.2.1中,您实际上可以使用内置--scope
标志仅升级以该scope纱线升级--scope@angular
开头的包。在官方网站上查看更多信息。纱线升级互动版
将为您提供最新版本的纱线。在安装上面提到的@valentinvoilean的纱线更新包时,甚至会输出此建议。我正在使用
安装后,只需运行ncu-u
,然后运行warn
您知道npm
是否支持此功能吗?如果是,语法是什么?还有,这是哪个平台?Linux(或任何类似Unix的系统)或Windows?@Aurora0001:我不知道npm支持什么,我用的是Windows。我知道这不是一个有效的语法,只是问在Thread中是否有任何选项。据我所知,在Thread中没有任何方法可以做到这一点。如果您愿意,我可以编写一个简短的节点脚本来搜索每个依赖项,并为其运行纱线升级
。我之所以问npm是否支持这一点,是因为这将使问题更容易搜索,但如果您不确定,请不要担心。这似乎更像是一个评论,而不是一个答案。请参阅堆栈溢出帮助