簡體   English   中英

Angular 工作區 - 我可以在多個 package.json 中分離依賴項嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM