如何知道模块是否正在通过 worker-loader 编译
How to know if a module is being compiled through worker-loader
我的目标是使用新的 DefinePlugin.runtimeValue() 功能有条件地定义工作人员中的 'typeof window' 到 'undefined' 和工作人员外部的 'object' (网络目标)
目前,我不满意的代码是:
new webpack.DefinePlugin({
'typeof window': webpack.DefinePlugin.runtimeValue(function({ module }) {
const isWorker = module.nameForCondition && /\.worker\./.test(module.nameForCondition());
return JSON.stringify(isWorker ? 'undefined' : 'object');
})
}),
我想知道我是否可以通过模块对象检测到 worker-loader。
不好意思打扰了,我自己找到了答案:
const isWorker = module.parser.state.compilation.compiler.name === 'worker';
我的目标是使用新的 DefinePlugin.runtimeValue() 功能有条件地定义工作人员中的 'typeof window' 到 'undefined' 和工作人员外部的 'object' (网络目标)
目前,我不满意的代码是:
new webpack.DefinePlugin({
'typeof window': webpack.DefinePlugin.runtimeValue(function({ module }) {
const isWorker = module.nameForCondition && /\.worker\./.test(module.nameForCondition());
return JSON.stringify(isWorker ? 'undefined' : 'object');
})
}),
我想知道我是否可以通过模块对象检测到 worker-loader。
不好意思打扰了,我自己找到了答案:
const isWorker = module.parser.state.compilation.compiler.name === 'worker';