角库中的Web Worker

时间:2019-07-17 09:29:07

标签: angular performance web-worker angular-library

我正在开发执行强大计算操作的角度库。因此,我对实现Web Worker感兴趣,以便获得更好的用户体验并使复杂的操作在后台运行。

我的问题是,当我使用Angular CLI 8运行命令ng g web-worker时,输出为Web Worker requires a project type of "application". 有没有人建议如何在我的图书馆中实施网络工作者?

3 个答案:

答案 0 :(得分:1)

图书馆本身应该只向其用户提供功能。由开发人员决定如何使用它们:在网页的主要上下文中,在Web工作程序中或在服务器端呈现管道中。因此,没有直接简单的方法可以完成您要问的事情。正确的方法是先创建您的库,然后创建一个单独的项目,例如

ng new --create-application false workername

,然后直接配置webpack以获得使用您的库的精简包。如果您确实想将Webworker捆绑在库中,则可以尝试对其进行内联(see)。它还需要您弄乱webpack才能创建缩小的结果,并将其作为Blob嵌入到包中。

查看以下链接,这两种情况均有用:

https://github.com/webpack-contrib/worker-loader

https://github.com/GoogleChromeLabs/worker-plugin

https://www.npmjs.com/package/webworkify-webpack?activeTab=readme

答案 1 :(得分:0)

我认为您必须在ng generate web-worker ----> ng generate web-worker app之后添加应用!

您可以在此链接https://angular.io/guide/web-worker

中看到它

答案 2 :(得分:0)

我不知道您想使用ng g网络工作者做什么。

如果要在库中使用网络工作者。尝试使用ngx-web-worker。您可以使用此插件检查此example app

如果有帮助,请告诉我。