簡體   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