程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了React 和 Typescript 中的 ServiceWorker大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决React 和 Typescript 中的 @R_944_9260@ceWorker?

开发过程中遇到React 和 Typescript 中的 @R_944_9260@ceWorker的问题如何解决?下面主要结合日常开发的经验,给出你关于React 和 Typescript 中的 @R_944_9260@ceWorker的解决方法建议,希望对你解决React 和 Typescript 中的 @R_944_9260@ceWorker有所启发或帮助;

在创建基于 JavaScript 的 React 项目时,安装 @R_944_9260@ce Worker 只需将 index.Jsx 上的 @R_944_9260@ceWorker.unregister() 更改为 @R_944_9260@ceWorker.register()

具有这样的项目结构:

- src
   |- index.Jsx
   |- @R_944_9260@ceWorker.Js

此代码构建完成后,/build 文件夹将如下所示:

- build
   |- static
   |   |- CSS
   |   |- Js
   |   |- media
   |
   |- index.@R_404_6832@
   |- @R_944_9260@ce-worker.Js

这会正常工作,并且会导致 @R_944_9260@ce Worker 被正确注册。

@H_262_24@

另一方面,当在 Typescript 中设置项目时,给定相同的项目结构(其中 Js / Jsx 文件改为 ts / tsx) ,/build 看起来类似:

- build
   |- static
   |   |- Js
   |       |- bundled-Js.chunk.Js
   |       |- bundled-Js2.chunk.Js
   |       |- ..
   |
   |- index.@R_404_6832@

所以似乎 Typescript 构建了 @R_944_9260@ceWorker,将它与所有其他 Js 文件捆绑在一起。

这将导致 @R_944_9260@ce Worker 未被注册,并在控制台中出现以下错误:

Error during @R_944_9260@ce worker registration: DOMException: Failed to register a @R_944_9260@ceWorker for scope ('https://example.com/') with script ('https://example.com/@R_944_9260@ce-worker.Js'): The script has an unsupported MIME type ('text/@R_404_6832@').

可以看到有错误的直播站点here;开源代码可以在Here找到

知道我做错了什么吗?

非常感谢任何提示,提前感谢您!

解决方法

好的,看看你使用 Create React App 的代码。这使用了 webpack,这就是捆绑,与 Typescript 无关,Javascript 被捆绑时也会发生同样的情况。

问题是覆盖 webpack 配置并不容易,有 CRACO -> https://github.com/gsoft-inc/craco/blob/master/packages/craco/README.md#webpack-api

但即便如此还是有点棘手!!您需要告诉 webpack 不要捆绑 @R_944_9260@ce-worker.js,另外我会从 server-worker 中取出寄存器位,因为它可以捆绑并希望包含在您的捆绑包中。

最简单的选择可能是直接使用 Typescript 单独编译 webworker。同样,在您的正常构建中保持寄存器位分开。

大佬总结

以上是大佬教程为你收集整理的React 和 Typescript 中的 ServiceWorker全部内容,希望文章能够帮你解决React 和 Typescript 中的 ServiceWorker所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:中的