繁体   English   中英

Angular发布-将硬编码版本或github链接放入package.json中? [关闭]

[英]Angular releases - put hard-coded version or github link in package.json? [closed]

我的团队在工作中使用了一个相当新的角度应用程序,我们希望该应用程序尽可能保持最新状态,因此我们的package.json看起来像这样:

"dependencies": {
   ...
   "@angular/cdk": "github:angular/cdk-builds",
   "@angular/material": "github:angular/material2-builds",
   ...
}

事实证明这是有问题的,因为在过去的几个月中有3次我们花了几个小时来修复由于新版本的角材料(或类似的东西)推出而导致的随机编译错误。 不要问我为什么,但是我们只能通过为角/材质输入特定的版本来解决最新的奇数依赖错误:

    "@angular/material": "7.0.0-beta.2",

...即使这是它应该获取的最新版本。 我认为我们可能只需要保持这种状态即可。

我的问题是: 是否应该在其中保留指向github最新版本的链接? 这是惯例吗? 总是自动使我们的项目保持最新是很高兴的,但是由于事情中断,这真的很困难。

从广义上讲, 什么是使角度保持最新的最佳实践 我们是否仅需要每隔几个月就手动更新所有内容并进行测试以确保所有内容都能正常工作?

我认为(这可能并不适合每个人),我认为这是一个坏主意。

例如,如果您的项目具有良好的持续集成系统,则您的测试可能会在本地通过,并且在您进行本地测试到CI开始下载依赖项的那一刻之间,情况将会有所改变。 现在,假设您仅将管道用作连续部署(如果没有测试,这将是一个非常糟糕的主意),那么您的本地项目和CI项目之间可能会出现重大差异。

人们多年来一直在为此奋斗,并试图在项目中固定依赖项的版本+子依赖项的版本。 因此,Yarn和他们的yarn.lock文件取得了巨大的成功。 现在npm也这样做。

如果您真的想使项目保持最新状态,而不必真正手动进行该过程(对于UI lib来说似乎很冒险),我想说,唯一有信心做到这一切的唯一方法是:

  • 有很多测试,因为您将部署可能会损坏的东西
  • 有很多E2E测试,并且肯定有一些可视化工具来检查回归/截屏差异
  • 进行一些机器人程序/自动检查,检查是否有新版本可用,如果有,请创建新的提交,运行管道,仅在所有内容为绿色时合并

我想说的是很多设置而已。 如果您每月或每2个月进行升级,就可以了。 (但是,您仍然应该有大量的测试,单元,集成,端到端和CI系统!)目前主要是屏幕截图有所不同,但希望我们在未来几个月内能获得赛普拉斯的适当支持(?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM