如何知道模块是否正在通过 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';