5

を含める:WebPACKのHTML(EJS)だからこれは私のWebPACKの設定で他のテンプレート

import path from 'path'; 

var HtmlWebpackPlugin = require('html-webpack-plugin'); 


module.exports = { 
    entry: { 
     index: './dev/index.js' 
    }, 
    output: { 
     path: path.join(__dirname, 'dist'), 
     // publicPath: 'http://localhost:3000/', 
     filename: 'bundle.js', 
     chunkFilename: '[id].bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       exclude: path.resolve(__dirname, "node_modules"), 
       loader: 'babel-loader' 
      } 
     ] 
    }, 
    plugins: [ 
     new HtmlWebpackPlugin({ 
      hash: true, 
      template: 'ejs!./dev/index.ejs', 
      inject: 'body' 
     }) 
    ] 

}; 

マイindex.ejsファイル:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta charset="UTF-8"> 
    <title>Document</title> 
</head> 
<body> 
    <%- include html/one/1.ejs %> 

</body> 

</html> 

マイフォルダ構造:

dev/ 
    /assets 
    /html 
    /one 
     1.ejs 
     1.scss 
     1.js 
    /two 
    /three 
    index.js 
    index.ejs 

私がしたいです私はhtmlファイルをモジュール化して、それらを含めたいと思っています。

私は別のテンプレートを含む多くの方法を試しましたが、どれも成功しませんでした...

私はこの仕事をどのようにすることができますか?

答えて

0

あなたはhtmlプラグインを使用していますが、ejsをサポートしているかどうかを確認してください。また、ejsのためにöoaderを使用する必要がある場合など、

3

ejs-render-loaderパッケージを使用してください。 see package

plugins: [ 
    new HtmlWebpackPlugin({ 
     hash: true, 
     template: 'ejs-render!./dev/index.ejs', 
     inject: 'body' 
    }) 
] 

私はあなたの問題を解決すると思います。

update:webpack3ではローダーの構文が変更されました。 'ejs-render!./dev/index.ejs'は次のようになります:'ejs-render-loader!./dev/index.ejs'

+0

thxこれは合理的なejsローダーです –

関連する問題