[英]Angular workspace - Can I seperate dependencies in multiple package.json?
Angular 工作區允許我將多個項目添加到單一存儲庫中,這很棒。 但是,與多個團隊合作時,我注意到如果您只有一個 package.json 並且讓每個團隊使用他們正在編寫的應用程序編輯它,它會變得非常混亂。
有沒有可能有這樣的結構?
|── angular.json
├── browserslist
├── e2e
├── karma.conf.js
├── node_modules
├── package.json <--- I should only be responsible for everything in /src
├── package-lock.json
├── projects
│ └── my-sub-application
│ ├── browserslist
│ ├── karma.conf.js
│ ├── package.json <--- Is this possible? So that "my-sub-application" only pulls its dependencies from this package.json?
│ ├── src
│ │ ├── app
│ │ ├── assets
│ │ ├── environments
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ ├── main.ts
│ │ ├── polyfills.ts
│ │ ├── styles.scss
│ │ └── test.ts
│ ├── tsconfig.app.json
│ ├── tsconfig.spec.json
│ └── tslint.json
├── README.md
├── src
│ ├── app
│ ├── assets
│ ├── environments
│ ├── favicon.ico
│ ├── index.html
│ ├── main.ts
│ ├── polyfills.ts
│ ├── styles.scss
│ └── test.ts
├── tsconfig.app.json
├── tsconfig.json
├── tsconfig.spec.json
└── tslint.json
這個想法是為每個子應用程序都有一個 package.json,因為它允許團隊獨立更新他們的依賴項。 那可能嗎?
我認為答案是“是和否”。
只要您想使用一個應用程序(一個構建,一個人工制品),那么答案是否定的。
但是,如果您的團隊正在處理不同的、獨立的功能,則可能值得考慮創建多個庫( https://angular.io/guide/creating-libraries )。
每個 Lib 都有自己的 package.json。 但是在你走這一步之前,我認為你應該分析你的依賴結構(和業務用例),以確保未來庫的代碼不依賴於它之外的東西。
你可以有一種依賴樹(主應用程序使用 Lib-A 和 Lib-B,Lib-A 和 Lib-B 使用 Lib-C,...)但你應該檢查沒有循環依賴,以及“較低的" lib 永遠不應該依賴於“更高”的 lib。
使用 libs 的方法對開發過程有重大影響。 一個不同的構建過程,一個更加分割/分離的代碼庫,它可能會以多種方式影響代碼設計,......
所以這不是一個小的變化。 但它也給了你很多優點。
因此,一個庫可以獲得新版本,而應用程序的其他部分仍將使用舊版本,直到這些團隊准備好升級。 分離成庫使整個應用程序更不容易被破壞,因為庫只會通過定義的接口相互交談。 ...
所以是的,你可以有多個 package.jsons。 但它就像有多個小項目。 具有所有優點和缺點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.