繁体   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