我正在为增强现实这个小项目进行开发,ARnft它基于Jsartoolkit5的较轻版本,JsartoolkitNFT仅用于 NFT 标记。该代码(部分)遵循 ES6 标准,并将webpack用作捆绑程序。在开发模式下一切都很好,但是当我进入生产模式时,示例卡在了这个错误中:
05ff8846-4121-4380-86c3-9612f404732a:1 Uncaught SyntaxError: Function statements require a function name
它在嵌入式Worker处停止。该应用程序不会进入内部,因为否则我将在开发控制台中收到一些消息。 我将Worker注入Blob对象中:
// create a Worker to handle loading of NFT marker and tracking of it
const workerBlob = new Blob(
[workerRunner.toString().replace(/^function .+\{?|\}$/g, '')],
{ type: 'text/js-worker' }
)
const workerBlobUrl = URL.createObjectURL(workerBlob)
worker = new Worker(workerBlobUrl)
workerRunner在此行定义:
我认为这是一个缩小问题,我试图在脚本中添加--optimize-minimize
:
"build-es6": "webpack --mode production --optimize-minimize",
,但没有帮助。我该如何解决?
谢谢
答案 0 :(得分:0)
可以使用worker-loader插件解决此问题。
不是像问题中解释的那样,将工人插入Blob中:
import Worker from './Worker.js'
let worker
// other code
worker = new Worker()
// other code with postMessage and onmesssage...
{
test: /\worker\.js$/,
use: {
loader: 'worker-loader',
options: { inline: true, fallback: false }
}
}