Angular——在项目之间共享通用代码的最佳实践

标签 angular angular-cli

如何在项目之间共享代码?

我有两个使用创建的应用程序:
ng generate application app1ng generate application app2
我要projects/app1/src/app.module.tsprojects/app2/src/shared/common.module.ts 导入模块

在不创建名为 common 的第三个项目的情况下,最佳实践是什么?创建一个projects/common 或者只创建一个名为common 的文件夹并在此处放置 TypeScript 文件并导入它们。

最佳答案

使用图书馆项目!

ng generate library common
这将自动将路径别名添加到主 tsconfig.json
  "common": [
    "dist/prod/common"
  ],
  "common/*": [
    "dist/prod/common/*"
  ]
这将允许您引用 common 中定义的模块和导出的组件、服务和管道。图书馆项目。
例如,在您的任何 app.module.ts :
import { SharedModule } from 'common';

@NgModule({
  imports: [
    SharedModule,
    ...
  ],
  declarations: [...],
  exports: [...]
  bootstrap: [AppComponent]
})
export class AppModule { }

ng serve 期间支持热重新加载的替代方法一个消费应用程序(例如,用于开发)是从通用 public_api 导入从项目层面来看,如下:
import { SharedModule } from 'projects/common/src/public_api';

@NgModule({
  imports: [
    SharedModule,
    ...
  ],
  ...
})
export class AppModule { }

试一试,我用过很多次,效果很好!我强烈建议您阅读 Angular Docs - Creating libraries .

关于Angular——在项目之间共享通用代码的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51253440/

相关文章:

angular - 如何使用 Angular 向 API 网关发出 Get 请求?

angular - 使用 Angular 6 中的 Reactive 形式的递归形式( TreeView )

HTTP Post 请求正文被解释为文本/纯文本而不是 url 编码。

angular - 尝试通过 ts-patch 在 Angular 项目中使用 ts-nameof

javascript - Angular-CLI 错误 : Return type of public method from exported class has or is using name 'ErrorObservable' from external module but cannot be named

typescript - Angular cli项目中的绝对路径

angular - 如何在 Angular2 模板中显示异步 promise 函数的结果?

angular - 如何在ngrx效果中进行http轮询

angular - "You seem to not be depending on "@ Angular/核心 "."

angular - 我如何在 Angular 8 应用程序中支持 Internet Explorer?