繁体   English   中英

入口点 undefined = index.html 使用 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 文件夹中,这应该可以工作这是我的假设。 如果问题仍然存在,请告诉我。

根据HtmlWebpackPlugin的创建者的HtmlWebpackPlugin这只是一个毫无意义的日志消息和一个可忽略的外观问题。 请参阅有关问题的评论

模板扩展触发不需要的加载程序似乎有问题。 如果模板的扩展名更改为任何其他插件,则该插件将起作用。

如果您使用默认的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM