如何使用辅助端点为 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的主要内容,如果未能解决你的问题,请参考以下文章

如何将路由端点重构为 ORM 结构?

计算机程序中的辅助库是啥?

使用 laravel 为不同的 API 制作单个端点

Angular8 - 从 API 端点获取数据到自动完成 [关闭]

Wordpress Rest Api 在自定义端点上使用 POST 更新内容

如何根据动态创建的请求数组执行多个axios get请求