Node.js 为什么在升级到Webpack 4后运行我的Webpack插件时“window”未定义?

Node.js 为什么在升级到Webpack 4后运行我的Webpack插件时“window”未定义?,node.js,webpack,webpack-4,webpack-plugin,Node.js,Webpack,Webpack 4,Webpack Plugin,我为Webpack编写了一个脚本,它接受生成的React组件,在节点中呈现它,然后将它插入生成的HTML文档中 这在Webpack3中使用得很好。为了升级到Webpack 4,我替换了 compiler.plugin("after-emit", compilation => { 与 据我所知,这应该足够了 在插件中,我向Webpack询问生成的bundle的路径,然后require,大致如下所示: const assetHash = Object.keys(compilation

我为Webpack编写了一个脚本,它接受生成的React组件,在节点中呈现它,然后将它插入生成的HTML文档中

这在Webpack3中使用得很好。为了升级到Webpack 4,我替换了

compiler.plugin("after-emit", compilation => {

据我所知,这应该足够了

在插件中,我向Webpack询问生成的bundle的路径,然后
require
,大致如下所示:

    const assetHash = Object.keys(compilation.assets).filter(asset => /app(.*).js/.test(asset))[0];
    const appFilePath = compilation.assets[assetHash].existsAt;
    // The `.default` is needed because it's an ES2015 module
    const App = require(appFilePath).default;
然而,由于
require
,我突然发现了如下错误:

ReferenceError: window is not defined
    at Object.<anonymous> (/home/vincent/Workspace/Flockademic/stacks/frontend/dist/app.da5512cf55a3c4446086.js:1:286)
...
(请注意,此示例取决于假定有问题的列。如您所见,
window
实际上并未在第286列中引用。)


我对Webpack不太熟悉,关于插件的文档相对较少,因此非常欢迎任何关于如何更接近解决此问题的建议/

将此添加到root.js文件中可能会有用

if(窗口类型==='undefined'){
global.window={};
}

ReferenceError: window is not defined
    at Object.<anonymous> (/home/vincent/Workspace/Flockademic/stacks/frontend/dist/app.da5512cf55a3c4446086.js:1:286)
...
!function(e,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i();else if("function"==typeof define&&define.amd)define([],i);else{var a=i();for(var o in a)("object"==typeof exports?exports:e)[o]=a[o]}}(window,function(){return function(e){var i={};function a(o){if