1

我必须维护一个中型 Angular 项目,我只是不知道如何以正确的方式使包保持最新。当然,我的 Angular 中有常用的 Angular 包package.json,但也有手动插入的附加包。当我更新时,不同包的版本要求总是存在一些问题,这通常意味着,npm或者ng update将拒绝工作。

我如何尝试做到这一点

要更新我通常遵循这个算法:

  1. ng update:这似乎更新了 Angular 包并将源代码迁移到新的 Angular 版本。

  2. npm update:这将根据 semver 规范更新所有包。这通常意味着一切都只更新了一点点。但通常我想要所有软件包的最新版本,因为会有大量测试表明更新没有任何问题。

  3. npm outdatednpm install:现在我可以更新由于 semver 不兼容而未手动更新的包,方法是使用最新版本npm outdated并使用它来安装包,如下所示:npm install thepackage@3.4.5 --save.

问题

  1. 当我更新所有显示在其中的包时,npm outdated我可能会ng update拒绝工作,因为我更新了 Angular 包(如zone.js)太远了,它不能满足所有要求。目前我在这一点上,我真的不知道如何降级 Angular 包,所以ng update会再次工作。我正在考虑使用ng update --force(获取自动源代码更改),然后创建一个全新的 Angular 项目作为基础,并合并文件和更改。

  2. 定期报告某些内容npm audit,需要将软件包更新到新版本。幸运的是,过去这只是开发依赖项。如果此问题得到解决npm audit,建议使用命令行来更新包。通常这不会立即对我有用。我得等几个星期才能成功。这对于开发依赖项来说可能没问题,但我担心我使用错了。

我的假设是否正确,即 npm 只安装一个版本的包,如果许多其他包具有特定包作为它们的依赖项,那么满足所有要求会变得非常复杂?

4

0 回答 0