Javascript 我可以在webpack--观看重建后重新加载webpack插件吗?

Javascript 我可以在webpack--观看重建后重新加载webpack插件吗?,javascript,node.js,webpack,gulp,Javascript,Node.js,Webpack,Gulp,我目前正在向我的HtmlWebpackPlugin动态添加模板,如下所示: var PROD = JSON.parse(process.env.PROD_ENV || '0'); function prepareHtml(){ console.log(PROD); pages = []; config = require('./src/core/js/config-modulo'); var size = Object.keys(config).length;

我目前正在向我的
HtmlWebpackPlugin
动态添加模板,如下所示:

var PROD = JSON.parse(process.env.PROD_ENV || '0');

function prepareHtml(){

    console.log(PROD);
    pages = [];
    config = require('./src/core/js/config-modulo');
    var size = Object.keys(config).length;
    for(var i = 0; i<size; i++){

        for(var j = 0; j<config[i+1].num_pages; j++){
            if(!(fs.existsSync('./src/und'+(i+1)+'/'+(j+1)+'.html'))){
                var modelo = '<html lang="pt-br">\n<head>\n<meta charset="UTF-8">\n<meta name="viewport" content="width=device-width, initial-scale=1.0">\n<title>Livro On-line</title>\n<script type="text/javascript" src="config-livro.js"></script>\n</head>\n<body>\n<div class="page">\n<div class="header"></div>\n<div class="conteudo">\n<!-- ================================================================== -->\n<!-- ================================================================== -->\n</div> <!-- End conteudo -->\n</div> <!-- End page -->\n<!-- Scripts -->\n</body>\n</html>';
                fs.outputFileSync('./src/und'+(i+1)+'/'+(j+1)+'.html',modelo);
            }
            var page = new HtmlWebpackPlugin({
                filename: '../../und'+(i+1)+'/'+(j+1)+'.html',
                template: './src/und'+(i+1)+'/'+(j+1)+'.html',
                });
            pages.push(page);
        }
        var newconfig = 'UNIDADE_NUMBER = '+(i+1)+';\n'+
                        'UNIDADE_NAME = "'+config[i+1].nome_unidade+'";\n'+
                        'LINK_PDF = "'+config[i+1].link_pdf+'";\n'+
                        'PAGES_TOTAL = '+config[i+1].num_pages+';';

        var caminho = 'dist/und'+(i+1); 

        if(PROD){ 
            console.log(PROD);
            fs.outputFile(caminho+'/config-livro.js', newconfig, function (err) {
                if(err) console.log(err);
            });
        }
    }
    delete require.cache[require.resolve('./src/core/js/config-modulo')];
    console.log(pages);
}
plugins: [
        new WebpackPreBuildPlugin(function(stats) {
            prepareHtml();
        }),
        new ExtractTextPlugin({
            filename: '../css/livro.css',
            disable: false,
            allChunks: true
        }),
        new webpack.ProvidePlugin({
            $: 'jquery',
            jQuery: 'jquery'
          })
    ].concat(pages)
其中,
prepareHtml
函数正在生成“pages”变量


我知道这是可行的,因为我第一次运行webpack时——观察所有文件的生成和正确跟踪,问题是动态添加新文件,函数运行良好,“pages”数组创建正确,“pages”数组无法输入插件数组。

我认为这不容易实现,因为,即,他们在编译器中设置钩子;您只需自己小心地将新插件应用于编译器

相反,如果您确实需要此功能,我建议您编写自己的网页包插件,将动态创建的
HtmlWebpackPlugin
实例包装起来,并在
HtmlWebpackPlugin
与您的动态配置相同的阶段运行它们


否则。。。在自述文件中最容易注意到的是,如果您添加了新页面,则必须重新启动监视过程。:)

我看不出你会把那些
HtmlWebpackPlugin
s添加到插件列表的什么地方?我使用.concat(页面)来添加函数内部创建的实例数组(它是一个全局变量)