5

Так что это мой WebPack конфигурации:WebPack HTML (EJS) включают в себя другие шаблоны

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 

Я хочу modularize мой html-файл, поэтому я хочу их включить ...

Я пробовал много методов, включая другой шаблон, но никто из них не работал ...

Может ли кто-нибудь дать мне какие-либо идеи о том, как я могу это сделать?

ответ

0

Вы используете html-плагин, убедитесь, что он поддерживает ejs, а также искать, если вы получаете какую-либо ошибку, например, если вам нужно использовать любой öoader для ejs.

3

Использование ejs-render-loader упаковка. see package

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

Я думаю, что это решит вашу проблему.

обновление: с webpack3 изменился синтаксис для загрузчиков. 'ejs-render!./dev/index.ejs' должно быть: 'ejs-render-loader!./dev/index.ejs'

+0

thx, это разумный загрузчик ejs –

 Смежные вопросы

  • Нет связанных вопросов^_^