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''