2017-05-30 16 views
0

私は、Mavenモジュール全体をインストールすると、Maven + frontend-maven-pluginとwebpackがうまくいっていないという問題があります。htmlwebpackPlugin + Maven - バンドルされたチャンクハッシュファイルを手動で挿入するにはどうすればよいですか?

new HtmlWebpackPlugin({ 
     template : '../resources/public/index.html', 
     filename : 'index.html', 
     inject : 'body', 
    }) 

をしかし、私は手動でfrontend-maven-pluginを実行する場合:単純にhtmlwebpackPluginが同梱JS/CSSテンプレートは、このようなとして提供されていても、何らかの理由で、私はMavenのモジュールを初めてインストールするファイルを注入しないだろうWebPACKのを置きますMavenモジュール全体をインストールした後、実際に正しいファイルが挿入されますが、これはむしろ奇妙な動作です。

自分のindex.htmlテンプレート内に、これらのバンドルされたファイル(私は3つ、1つのCSS、2つのファイルしかありません)をチャンクハッシュで手動で挿入する方法があるかどうかを知りたかったのですか?それはビルドをより一貫性のあるものにするでしょう。

スニップ私のwebpack.config.js - あなたがわかるように、私たちが開発者でない場合は、ファイル名にチャンクハッシュを追加します。

"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 
     ] 
    }, 
}; 

答えて

0

私はそれを解決 - 問題は、Mavenの/春は私のターゲットフォルダの外resources/publicに(私はテンプレートとして使用)Index.htmlとを取り、ターゲットフォルダに上書きすることを基本的だった - 基本的に上書きしますwebpackHTMLpluginからの出力です。この文脈では論理的に意味があります。

index.htmlファイルをresources/publicに入れないで解決しましたが、webpackのsrcフォルダにtemplate.htmlという文字列しかありません。そのため、Maven/Springは出力を空のテンプレートで上書きしません。

関連する問題