【问题标题】:Create a Non-Angular library in an Angular application在 Angular 应用程序中创建非 Angular 库
【发布时间】:2018-12-14 23:23:24
【问题描述】:

我需要在我的 Angular 项目中开发一个 typescript 库并稍后将其发布到 npm。我了解到,在 Angular 6 中,我可以使用 ng generate library 生成一个 npm 就绪库,并且能够同时在我的应用程序中编写和测试该库。

但就我而言,库将是一个简单的打字稿文件,其中包含一些类。它不是 Angular 库,因为不会涉及任何组件或服务。我希望在我的应用程序中开发它,因为我仍然需要应用程序来提供数据并测试结果。

我仍然可以使用ng generate library 来执行此操作吗?比如在我的 Angular 应用程序中生成一个非 Angular 库?

【问题讨论】:

  • ng generate library 将生成一个 Angular 库。您能否将这些类添加为 Angular 服务,以便在 Angular 应用程序使用它们时进行依赖注入?
  • @DeborahK 并非如此,该库将用于生成一些 Angular 服务,但它本身不是 Angular 服务。

标签: angular npm angular6


【解决方案1】:

我不这么认为。最好使用 typescript starter library 作为您计划发布到 npm 的非 Angular 打字稿库的基础。

因为 Angular 已经(大部分)支持单存储库格式,所以您可以将库保存在与 Angular 应用程序相同的存储库中。我使用yarn workspaces(和yarn而不是npm)来帮助实现这一点。

我使用的repo结构是

apps/
  - app_1_name/
    - app/
    - e2e/
    - package.json
  - app_2_name/
    - app/
    - e2e/
    - package.json
libs/
  - lib_1_name/
package.json
angular.json

【讨论】:

  • 感谢您的回复!我不确定我是否理解正确,对于打字稿入门库,你是说我可以通过将库保存在同一个仓库中来开发 Angular 应用程序中的库吗?还是我必须在其他地方开发它然后从 npm 使用它?
  • @Viv 我是说您可以在与您的角度应用程序相同的存储库中为您的角度应用程序开发库。如果需要,您可以使用该库而不发布到 NPM。你也可以将它发布到 NPM 并以这种方式使用它。由于您的库不是 Angular 模块,因此最好使用 typescript starter library(或另一个 typescript starter library)作为基础(而不是使用 ng g library 作为基础)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 2017-10-02
  • 1970-01-01
  • 2022-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多