【问题标题】:Web Worker in Angular LibraryAngular 库中的 Web Worker
【发布时间】:2019-11-26 02:24:36
【问题描述】:

我正在开发一个执行强大计算操作的角度库。所以我对实现 web worker 很感兴趣,以便获得更好的用户体验并让复杂的操作在后台运行。

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

【问题讨论】:

    标签: angular performance web-worker angular-library


    【解决方案1】:

    图书馆本身应该只为其用户提供功能。由开发人员决定如何使用它们:在网页主上下文中、在 web worker 中或在服务器端渲染管道中。因此,没有直接简单的方法可以按照您的要求进行操作。正确的方法是创建你的库,然后创建一个单独的项目,例如

    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

    【讨论】:

    • 谢谢!实际上,我发现 WebWorkers 无法在 GPU 上运行,而这正是我运行 Tensorflow 算法所需要的
    【解决方案2】:

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

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

    【讨论】:

    • 对不起,但这并不能解决问题,因为该错误与工人的姓名无关。错误与项目类型有关,在我的情况下它是一个库。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 2021-09-27
    • 2020-06-06
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    相关资源
    最近更新 更多