share_this_document plugin page htmlwebpackplugin doc_page cannot body app webpack template-engine ejs webpack-dev-server html-webpack-plugin

plugin - webpack html css



webpack html(ejs) incluye otras plantillas (2)

Está utilizando el complemento html, asegúrese de que sea compatible con ejs y también busque si está obteniendo algún error como si necesitara utilizar un öoader para ejs.

Así que esta es mi configuración de paquete web:

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'' }) ] };

Mi archivo index.ejs :

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

Mi estructura de carpetas:

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

Quiero modularizar mi archivo html, así que quiero incluirlos ...

He intentado muchos métodos, incluida otra plantilla, pero ninguno funcionó ...

¿Alguien puede darme alguna idea de cómo puedo hacer que esto funcione?


Use el paquete ejs-render-loader . ver paquete

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

Creo que resolverá tu problema.

actualización: con webpack3 la sintaxis para los cargadores ha cambiado. ''ejs-render!./dev/index.ejs'' debería ser ahora: ''ejs-render-loader!./dev/index.ejs''