这是正确的吗,ng update --all 只显示可用的升级选项?

Is this correct, ng update --all only shows the upgrade options available?

如果我运行命令

ng update

I see a listing of items such as
@angular/cdk  6.4.7 > 8.2.0   ng update @angular/cdk
...
...

There might be additional packages that are outdated.

Or run ng update --all to try and update all at the same time.

命令本身 ng update 似乎没有进行任何更改。

那么,ng update --all的执行是否有变化?

我只想查看检测到所有需要更新的软件包。

注意:ng update 命令允许用空格分隔的包用附加参数指定:

ng update [packages] [options]

查看 ng update command docs 了解更多信息。


这是因为默认情况下,ng update 命令在没有任何 arguments/packages 的情况下指定时将尽可能尝试更新所有包。

这是更新命令的代码部分,用于检查是否未指定包:

if (options.all || packages.length === 0) {
      // Either update all packages or show status
      return this.runSchematic({
        collectionName: '@schematics/update',
        schematicName: 'update',
        dryRun: !!options.dryRun,
        showNothingDone: false,
        additionalOptions: {
          force: options.force || false,
          next: options.next || false,
          verbose: options.verbose || false,
          packageManager,
          packages: options.all ? Object.keys(rootDependencies) : [],
        },
      });
    }

从上面的代码来看,这也意味着指定 --all 选项或根本不指定任何选项都将尝试更新所有包。


注意:您可以查看 update 命令的整个 source code 以了解该命令的工作原理。

如果你想升级到 angular 的主要版本,你应该参考这个网站:https://update.angular.io/

Angular 11+: 使用包管理器的更新命令:
NPM:npm updatesource
纱线:yarn upgrade

之前 angular 11:

2020 年初,ng update --all 仅更新所有包。

大约在 2020 年底,--all 标志 is deprecated:

--all functionality has been removed from ng update as updating multiple packages at once is not recommended. To update the depencencies in your workspace 'package.json' use the update command of your package manager