![](/img/trans.png)
[英]Index.html template isn't loading favicon for HtmlWebpackPlugin
[英]Entrypoint undefined = index.html using HtmlWebpackPlugin
我正在使用 Webpack 4 并且我正在创建配置文件,当尝试使用HtmlWebpackPlugin
它在控制台上得到了这个: Entrypoint undefined = index.html
,它打开浏览器并且 HTML 确实出现,但我得到了这个控制台上出现奇怪的消息,如何解决?
这就是我的配置文件的样子:
'use strict'
const webpack = require('webpack')
const { join, resolve } = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
mode: 'development', // dev
devtool: 'cheap-module-eval-source-map', // dev
entry: join(__dirname, 'src', 'index.js'),
output: {
filename: 'bundle.js',
path: resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
loader: 'babel-loader'
}
]
},
resolve: {
extensions: ['*', '.js', '.jsx']
},
devServer: {
contentBase: resolve(__dirname, 'build')
},
plugins: [
new webpack.ProgressPlugin(),
new HtmlWebpackPlugin({
template: join(__dirname, 'public', 'index.html')
}),
new webpack.HotModuleReplacementPlugin(), // dev
new webpack.NoEmitOnErrorsPlugin() // dev
]
}
试试这个; 您可能正在制作错误的模板路径:
new HtmlWebpackPlugin({
template: resolve(__dirname, 'src/public', 'index.html'),
filename: './index.html'
}),
如果 public 在 src 文件夹中,这应该可以工作这是我的假设。 如果问题仍然存在,请告诉我。
模板扩展触发不需要的加载程序似乎有问题。 如果模板的扩展名更改为任何其他插件,则该插件将起作用。
如果您使用默认的 webpack 模板系统( EJS ,从 webpack 4 开始)使用ejs
是有意义的,因为模板不再是有效的html
:
new HtmlWebpackPlugin({
// it works without 'path.resolve()'. No need for 'filename', defaults to 'index.html'
template: "./public/index.ejs",
}),
webpack 默认认为模板是 EJS,并会自动使用适当的加载器进行处理。 如果您使用任何其他模板系统,则必须添加相应的加载程序。 有关官方文档的更多信息。
plugins: [
...
new HtmlWebPackPlugin({
title: '...',
template: path.resolve(folderSrc, 'index.html'),
filename: 'index.html',
hash: true
})
]
通过在 webpack.config.js 中添加这个,我的错误得到了修复:
stats: { children: false }, //to fix the error-Entrypoint undefined=index.html
plugins:[
new HtmlWebpackPlugin({
template: './index.html'
})
]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.