是否可以使用Yarn包管理器升级package.json
的依赖项部分中的所有特定范围包?
例如:
yarn upgrade @scope/*
这将升级yarn.lock
和package.json
文件中的所有范围包。
答案 0 :(得分:16)
https://github.com/torifat/yarn-update说:
请改用yarn upgrade-interactive
。
答案 1 :(得分:4)
在当前版本v1.2.1中,您实际上可以使用--scope
标志中的内部版本来仅升级以该作用域yarn upgrade --scope @angular
开头的包。点击官方网站yarn upgrade scope了解更多信息。
答案 2 :(得分:3)
由于Yarn目前无法做到这一点,我已经编写了一个非常简短的Node脚本来做你想做的事情:
#include <stdio.h>
#define A 3
int main (){
printf("In this version A = %d\n", A);
return(0);
}
以下是对其作用的快速解释:
它从终端当前所在的目录中加载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并获取package.json
密钥
对于每个依赖项,我们运行指定为"dependencies"
的正则表达式(如果您需要更改它或想要解释正则表达式语法,我将使用RegExr进行测试。我使用过filterRegex
作为正则表达式的示例前缀
如果依赖项匹配,我们运行@angular
并记录
如果您对此有任何问题,请告诉我,但它应解决您的问题,直到纱线团队提出更好的方法。
答案 3 :(得分:3)
或者更好地安装yarn-update。
我发现它非常有用。
您所要做的就是运行yarn-update
,然后选择要更新的软件包。
答案 4 :(得分:0)
yarn upgrade-interactive
应该为您提供最新版本的纱线。在安装上面提到的@valentinvoilean的纱线更新包时,甚至会输出这个建议。
答案 5 :(得分:0)
我正在使用npm-check-updates
安装后,只需运行ncu -u
,然后运行yarn