为什么我需要 *public-api.ts* 和 *exports*

Why do i need *public-api.ts* and also *exports*

我是 angular、

的新手

开始编写我的第一个库,其中包含组件、服务和指令。

我在库的 exports 数组中列出了我的组件、服务和指令,但仍然:

阅读 angular.io 上的文档,看起来 public-api.tsexports 的目的相同 - 我可能在这里遗漏了一些基本的东西。

@NgModuleexports 定义了当该模块导入到另一个模块的 imports 中时向其他模块公开的内容。 public-api 用作更清晰的路径导入的桶文件。

示例:

// Instead of this
import { ExampleService } from '@lib/services/example.service';
import { AntoherService } from '@lib/sevivces/another.service';

// You can do this
import { ExmpaleService, AnotherService } from '@lib';

https://angular.io/api/core/NgModule#exports https://basarat.gitbooks.io/typescript/docs/tips/barrel.html

ngModule 中的导出作为导出的 Angular 部分,public-api.ts 导出 component/pipe/directive 的打字稿符号。

第二次导出不是必需的,但建议保持导入路径干净。

与public-api.ts(推荐)

import {A, B, C} from 'my-library'

没有public-api.ts

import {A} from 'my-library/a'
import {B} from 'my-library/b'
import {C} from 'my-library/c'

在你的 my-module.module.ts 中(工作正常但不如 public-api.ts 聪明)

import {A, B, C} from 'my-library/my-module'