Точка входа undefined = index.html с использованием HtmlWebpackPlugin - PullRequest
0 голосов
/ 25 августа 2018

Я использую 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
  ]
}

Ответы [ 2 ]

0 голосов
/ 20 июля 2019

Вроде проблема с расширением шаблона запуска нежелательного загрузчика. Если расширение шаблона будет изменено на любое другое, плагин будет работать.

Если вы используете стандартную систему шаблонов веб-пакетов ( EJS , начиная с веб-пакета 4), имеет смысл использовать ejs, поскольку шаблон больше не действителен html:

new HtmlWebpackPlugin({
    // it works without 'path.resolve()'. No need for 'filename', defaults to 'index.html'
    template: "./public/index.ejs",
}),

webpack по умолчанию считает, что шаблон EJS, и автоматически обработает его с соответствующим загрузчиком. Если вы используете любую другую систему шаблонов, вам нужно будет добавить соответствующий загрузчик. Подробнее о официальной документации .

0 голосов
/ 25 августа 2018

Попробуйте это;Возможно, вы делаете неправильный путь к шаблону:

 new HtmlWebpackPlugin({
        template: resolve(__dirname, 'src/public', 'index.html'),
        filename: './index.html'
      }),

Если public находится в папке src, это должно сработать. Это мое предположение.Дайте мне знать, если проблема все еще сохраняется.

...