如何使用辅助端点为 Angular 库创建 API
Posted
技术标签:
【中文标题】如何使用辅助端点为 Angular 库创建 API【英文标题】:How to use secondary endpoints to create API for Angular library 【发布时间】:2018-12-13 16:10:30 【问题描述】:场景:
我使用 ng-packagr
创建了一个自定义 UI 库,导出了自定义 components
和一些模型类。
问题:
在主项目中,import
语句适用于导出的组件,但不适用于导出的类,webpack
编译失败并给出错误:
找不到模块错误无法解析
my-custom-library/models
库项目代码:
模型类:src/app/modules/my-custom-module/models/my-model.ts
export class MyModel
constructor()
// default values for props here
// ...props here
索引文件:src/app/modules/my-custom-module/models/index.ts
export * from './my-model';
export * from './my-other-model';
在根目录导出文件:models.ts
export * from './src/app/modules/my-custom-module/models/index';
ng-packagr
根目录下的文件:public_api.ts
export * from './models';
export * from './src/app/modules/my-custom-module/my-custom-module.module';
export * from './src/app/modules/my-custom-module/components/index';
主要项目代码:
import MyCustomModule from 'my-custom-library'; // works
import MyModel from 'my-custom-library'; // works
import MyModel from 'my-custom-library/models'; // does not works
目的: 为最终开发者简化和划分 UI 库 API。
我相信,我缺少一些关于映射 webpack
模块分辨率的内容,因为 VS Code 可以识别 import
,智能感知工作,甚至 Ctrl + Click
导航到正确的文件,但 webpack
编译失败。
Git Issue
【问题讨论】:
【参考方案1】:我能够使用 Seconday End Points
实现所需的 API 模式。
致谢:Alan AgiusGit Issue
【讨论】:
看看这个(并尝试实现它),如果我想要 5 个辅助端点,这意味着维护我的代码的 5 个副本,我的 ng build 运行并构建所有 5 个副本。 . 还是我做错了? @blomster:我相信您缺少一些东西,但如果不查看实际代码/要求我无法确定。以上是关于如何使用辅助端点为 Angular 库创建 API的主要内容,如果未能解决你的问题,请参考以下文章
Angular8 - 从 API 端点获取数据到自动完成 [关闭]