15

假设存在一个用纯 Javascript 编写的 Javascript 库,通常用于普通的非框架网站。如何创建一个易于npm install编辑的 Angular 库,以使该库无缝地在 Angular 应用程序中使用?

我在 Angular 文档或更广泛的网络上找不到任何关于此过程的好的演示。

举个例子,有一个很棒的 Javascript 库叫做p5.js,它不能直接与 Angular 一起使用。如何创建一个 Angular 模块,您可以简单地将其导入到您自己的 Angular 模块中,并在完全支持 Angular 的情况下使用它的所有强大功能?

4

2 回答 2

9

就个人而言,我会使用 Angular CLI。Angular CLI v6 内置了 ng-packgr。

看看创建库的故事。它非常简单,它可以让您快速入门,并指导您使用更新的最佳实践。

更新:对于 Angular CLI v7 及更高版本,请参阅此处的文档

于 2018-07-19T04:50:46.293 回答
1

为 Angular 包装原生库是一个复杂的过程,因为库的细节会随着库的变化而变化。话虽如此,我们可以利用一些共同点。

设计包装库时主要关注的 3 个问题是:

  1. 检测 Angular 库中的更改并将它们委托给本机库。
  2. 检测本机事件并将它们冒泡到您的 Angular 库中。
  3. 使用NgZone.

其他考虑因素可能是性能、可伸缩性、在现有工具上添加新工具等。无论您处理什么库,您最终都可能将函数与函数、类与类、模块与一个模块等。假设本机库有 1000 个功能。你会一一实现吗?

有一些方法可以避免手动实现本机库中的每个元素,同时仍将它们的功能引入包装库。我在这里更详细地回答了这个问题

于 2021-07-09T16:48:33.113 回答