说我有一个包含以下内容的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语句)。