Npm 如何使用纱线升级所有范围内的软件包?

Npm 如何使用纱线升级所有范围内的软件包?,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

是否可以使用软件包管理器升级my
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是否支持这一点,是因为这将使问题更容易搜索,但如果您不确定,请不要担心。这似乎更像是一个评论,而不是一个答案。请参阅堆栈溢出帮助