Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java htmlwebpackPlugin+;Maven-如何手动注入绑定的chunkhash文件?_Java_Maven_Webpack_Html Webpack Plugin - Fatal编程技术网

Java htmlwebpackPlugin+;Maven-如何手动注入绑定的chunkhash文件?

Java htmlwebpackPlugin+;Maven-如何手动注入绑定的chunkhash文件?,java,maven,webpack,html-webpack-plugin,Java,Maven,Webpack,Html Webpack Plugin,我有一个问题,当我安装整个Maven模块时,Maven+前端Maven插件和webpack不能很好地结合在一起;简单地说,Webpack htmlwebpackPlugin在我第一次安装Maven模块时不会注入捆绑的js/css文件,因为某些原因,即使提供了这样的模板: new HtmlWebpackPlugin({ template : '../resources/public/index.html', filename : 'index.html',

我有一个问题,当我安装整个Maven模块时,Maven+前端Maven插件和webpack不能很好地结合在一起;简单地说,Webpack htmlwebpackPlugin在我第一次安装Maven模块时不会注入捆绑的js/css文件,因为某些原因,即使提供了这样的模板:

    new HtmlWebpackPlugin({
        template : '../resources/public/index.html',
        filename : 'index.html',
        inject : 'body',
    })
但是,如果我在安装整个maven模块后手动运行
前端maven插件
,它实际上会插入正确的文件,这是一种非常奇怪的行为

为了解决这个问题,我想知道是否有一种手动方法可以在我自己的
index.html
模板中用chunkhash注入这些捆绑文件(我只有三个;1个css,2个js文件)?这将使构建更加一致

我的
webpack.config.js
-正如您所见,如果我们不在dev中,我们会将chunkhash添加到文件名中

"use strict";
const ExtractTextPlugin = require("extract-text-webpack-plugin");
const HtmlWebpackPlugin = require('html-webpack-plugin');


let path = require('path');
let webpack = require("webpack");

const PATHS = {
    build: path.join(__dirname, '../../../target', 'classes', 'public'),
};

const env = process.env.NODE_ENV;

let isDev = false;

if(env == "dev"){
    isDev = true;
}


console.log(`Dev environment: ${isDev}`);


module.exports = {

    entry: {
        main: './js/index.jsx',
        vendor: [
            "react","react-dom","axios",
            "react-table", "mobx", "mobx-react", "mobx-utils", "lodash"],
    },
    output: {
        path: PATHS.build,
        filename: `bundle.${isDev ? '' : '[chunkhash]'}.js`
    },

    plugins: [
        new webpack.optimize.CommonsChunkPlugin({name: "vendor", filename: `/static/js/vendor.bundle.${isDev ? '' : '[chunkhash]'}.js`}),
        new ExtractTextPlugin(`/static/css/[name].${isDev ? '' : '[chunkhash]'}.css`),
        new HtmlWebpackPlugin({
            template : '../resources/public/index.html',
            filename : 'index.html',
            inject : 'body',
        })

    ],

    module: {
        loaders: [
    // Bunch of loaders
        ]
    },
};

我解决了这个问题——问题基本上是Maven/Spring将把
resources/public
中的Index.html(我用作模板)放在我的目标文件夹之外,并在目标文件夹中覆盖它——基本上覆盖了
webpackHTMLplugin
的输出,这在这种情况下是合乎逻辑的

我通过在
resources/public
中没有任何
index.html
文件来解决这个问题,而只是在webpack所在的src文件夹中有一个
template.html
。因此,它不会用空模板覆盖输出