2

如果我运行命令

ng update

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

可能还有其他包已过时。

或者运行 ng update --all 来尝试同时更新所有内容。

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

那么,执行是否ng update --all会改变?

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

4

2 回答 2

5

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

Angular 11+:使用包管理器的更新命令:
NPM: npm update source
YARN: yarn upgrade source

在角度 11 之前

在 2020 年初,ng update --all只需更新所有软件包。

大约在 2020 年末,该--all标志被弃用

--all功能已被删除,ng update因为不建议一次更新多个包。要更新工作区“package.json”中的依赖关系,请使用包管理器的更新命令

于 2020-07-10T22:03:36.277 回答
1

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

ng update [packages] [options]

查看ng update命令文档以获取更多信息。


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

这是更新命令的代码部分,它检查是否没有指定包:

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以了解该命令的工作原理。

于 2019-09-25T15:31:46.447 回答