【发布时间】:2021-04-13 23:40:07
【问题描述】:
我正在尝试使用网络工作者在我的 React 应用程序的后台运行人脸检测过程。我正在使用一个名为face-api.js 的库来进行人脸检测。但我不确定如何导入这个库以在我的worker.js 文件中使用。
worker.js
import * as faceapi from 'face-api.js';
this.onmessage = (e) => {
console.log("Message from worker.js");
this.postMessage('Hello Main')
};
TestComponent.js
import React, {useEffect} from 'react'
function TestComponent() {
useEffect(() => {
const worker = new Worker('./workers/worker.js')
worker.postMessage('Hello Worker')
worker.onmessage = e => {
console.log('Message received from worker:', e.data)
}
}
);
return (
<div>
<h1> Test Component </h1>
</div>
)
}
export default TestComponent
我运行这个测试代码,我在 chrome 上得到以下错误:
/workers/worker.js:1 Uncaught SyntaxError: Cannot use import statement outside a module
我尝试使用require 导入不起作用的库。我还尝试将工作人员声明为模块
const worker = new Worker('./workers/worker.js', type: "module")
这使错误消失了,但没有任何效果:工人没有做它打算做的事情。
请指出正确的方向。提前致谢!
【问题讨论】:
-
您是否尝试过使用Worker-loader 作为您的 web-worker 的 webpack 插件?
-
你解决了吗?我遇到了同样的问题
-
你尝试使用useWorker库吗?
标签: javascript reactjs import node-modules web-worker