我必须维护一个中型 Angular 项目,我只是不知道如何以正确的方式使包保持最新。当然,我的 Angular 中有常用的 Angular 包package.json
,但也有手动插入的附加包。当我更新时,不同包的版本要求总是存在一些问题,这通常意味着,npm
或者ng update
将拒绝工作。
我如何尝试做到这一点
要更新我通常遵循这个算法:
ng update
:这似乎更新了 Angular 包并将源代码迁移到新的 Angular 版本。npm update
:这将根据 semver 规范更新所有包。这通常意味着一切都只更新了一点点。但通常我想要所有软件包的最新版本,因为会有大量测试表明更新没有任何问题。npm outdated
和npm install
:现在我可以更新由于 semver 不兼容而未手动更新的包,方法是使用最新版本npm outdated
并使用它来安装包,如下所示:npm install thepackage@3.4.5 --save
.
问题
当我更新所有显示在其中的包时,
npm outdated
我可能会ng update
拒绝工作,因为我更新了 Angular 包(如zone.js
)太远了,它不能满足所有要求。目前我在这一点上,我真的不知道如何降级 Angular 包,所以ng update
会再次工作。我正在考虑使用ng update --force
(获取自动源代码更改),然后创建一个全新的 Angular 项目作为基础,并合并文件和更改。定期报告某些内容
npm audit
,需要将软件包更新到新版本。幸运的是,过去这只是开发依赖项。如果此问题得到解决npm audit
,建议使用命令行来更新包。通常这不会立即对我有用。我得等几个星期才能成功。这对于开发依赖项来说可能没问题,但我担心我使用错了。
我的假设是否正确,即 npm 只安装一个版本的包,如果许多其他包具有特定包作为它们的依赖项,那么满足所有要求会变得非常复杂?