为什么我需要 *public-api.ts* 和 *exports*
Why do i need *public-api.ts* and also *exports*
我是 angular、
的新手
开始编写我的第一个库,其中包含组件、服务和指令。
我在库的 exports
数组中列出了我的组件、服务和指令,但仍然:
当从另一个库或应用程序中使用该库并编译成功时,
我需要在 public-api.ts
中列出我的组件和服务。为什么 ? ngModule 的 exports
数组还不够吗?
现在从 exports
数组中删除了组件、服务、指令,一切仍然有效。为什么?
阅读 angular.io 上的文档,看起来 public-api.ts
和 exports
的目的相同 - 我可能在这里遗漏了一些基本的东西。
@NgModule
的 exports
定义了当该模块导入到另一个模块的 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'
我是 angular、
的新手开始编写我的第一个库,其中包含组件、服务和指令。
我在库的 exports
数组中列出了我的组件、服务和指令,但仍然:
当从另一个库或应用程序中使用该库并编译成功时, 我需要在
public-api.ts
中列出我的组件和服务。为什么 ? ngModule 的exports
数组还不够吗?现在从
exports
数组中删除了组件、服务、指令,一切仍然有效。为什么?
阅读 angular.io 上的文档,看起来 public-api.ts
和 exports
的目的相同 - 我可能在这里遗漏了一些基本的东西。
@NgModule
的 exports
定义了当该模块导入到另一个模块的 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'