使用Webpack为Web Worker内联要求声明

时间:2018-10-01 13:56:00

标签: javascript webpack inline web-worker

说我有一个包含以下内容的Javascript文件:

function worker(callback) {
    let helper = require("./helper.js")

    let result = helper.doSomething();

    callback(result);
}

文件的内容将与Webpack捆绑在一起。因此,此功能和“ helper.js”将捆绑在一个文件中。

现在棘手的部分:此功能将在网络工作者中使用。需求不再得到认可,因为在Web worker内部,它们不在范围内。

一个潜在的解决方案可能是内联require语句的内容。在开发版本中可能看起来像这样:

function worker(callback) {
    let helper = eval("return {doSomething: function(){ return 3 }}");

    let result = helper.doSomething();

    callback(result);
}

通过这种方式,需求被简单地替换了,所有必需的模块都被包含在web worker的范围之内。

我的问题:Webpack是否可以使用这种形式的模块解析?可以内联模块而不是内联模块吗?

扩展信息:

我正在使用threads.js库,该库简化了Web和节点环境中的多线程。对于Web,通常需要通过一个额外的参数来定义要导入的脚本。节点环境应该只需要在Web Worker中使用这些库。

我宁愿不编写平台特定的代码,而只是让Webpack创建两个Web Worker捆绑包。一种用于网络(将内联require语句),另一种用于节点(将保留require语句)。

0 个答案:

没有答案