Angular从创建库到引用库

2019-08-26  本文已影响0人  Arthur_Pluto

前序:

你可以创建和发布新库来扩展 Angular 的功能。如果你发现需要在多个应用中解决同样的问题(或者想与其他开发者共享你的解决方案),你就有了一个潜在的库。

创建库

  1. 使用 Angular CLI,用以下命令生成一个新库的骨架
   ng generate library my-lib

2.此时在你的工作区中创建 projects/my-lib 文件夹,里面包含 NgModule 中的一个组件和一个服务。该工作区的配置文件 angular.json 中也添加了一个 'library' 类型的项目。

"projects": {
  ...
  "my-lib": {
    "root": "projects/my-lib",
    "sourceRoot": "projects/my-lib/src",
    "projectType": "library",
    "prefix": "lib",
    "architect": {
      "build": {
        "builder": "@angular-devkit/build-ng-packagr:build",
        ...

3.使用 CLI 命令来构建、测试和 lint 这个项目

   ng build my-lib
   ng test my-lib
   ng lint my-lib

注意:

该项目配置的构建器与应用类项目的默认构建器不同。此构建器可以确保库永远使用 AoT 编译器构建,而不必再指定--prod标志。
要让库代码可以复用,你必须为它定义一个公共的 API。这个“用户层”定义了库中消费者的可用内容。该库的用户应该可以通过单个的导入路径来访问公共功能(如NgModules、服务提供商和工具函数)。

库的公共 API 是在库文件夹下的 public-api.ts 文件中维护的。当你的库被导入应用时,从该文件导出的所有内容都会公开。请使用 NgModule 来暴露这些服务和组件。

你的库里应该提供一些文档(通常是 README 文件)来指导别人安装和维护。

与 CLI 集成

库中可以包含那些能与 Angular CLI 集成的 schematics

要了解更多信息,参见 原理图概览供库使用的原理图

发布你的库

使用 Angular CLI 和 npm 包管理器来把你的库构建并发布成 npm 包。默认情况下,库是在 AoT模式 下构建的,因此在构建发布时你不需要指定-prod标志。

   ng build my-lib
   cd dist/my-lib
   npm publish

如果你之前从未在 npm 中发布过包,就必须创建一个用户帐号。点此阅读发布 npm 包的更多信息。

在应用中使用自己的库

你不必把库发布到 npm 包管理器上就可以在自己的应用中使用它,但必须先构建它。
要想在应用中使用你自己的库:

   content_copy
   ng build my-lib
   content_copy
   import { myExport } from 'my-lib';
上一篇 下一篇

猜你喜欢

热点阅读