reactjs html-webpack-插件入口点未定义= index.html

iswrvxsc  于 2023-01-02  发布在  React
关注(0)|答案(3)|浏览(168)

我尝试设置webpack 4和React样板文件,但在呈现index.html时遇到问题。例如,当我更新index.html的标题时,/dist文件夹中的index.html没有更新,只有标题被呈现,而index.js中没有任何内容被呈现。请帮助查看我项目中的以下详细信息。
package.json

{
  "name": "react-webpack-boilerplate",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack-dev-server --mode development --open --hot",
    "build": "webpack --mode production"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "babel-core": "^6.26.3",
    "babel-loader": "^7.1.4",
    "babel-preset-env": "^1.7.0",
    "babel-preset-react": "^6.24.1",
    "css-loader": "^0.28.11",
    "html-loader": "^0.5.5",
    "html-webpack-plugin": "^3.2.0",
    "redux-immutable-state-invariant": "1.2.3",
    "style-loader": "^0.21.0",
    "webpack": "^4.6.0",
    "webpack-cli": "^2.0.15",
    "webpack-dev-server": "^3.1.4"
  },
  "dependencies": {
    "bootstrap": "^4.1.1",
    "react": "^16.3.2",
    "react-bootstrap": "^0.32.1",
    "react-dom": "^16.3.2",
    "react-redux": "^5.0.7",
    "react-router": "2.4.0",
    "react-router-redux": "4.0.4",
    "redux": "3.5.2",
    "redux-thunk": "2.0.1"
  }
}

webpack.config.js:

// state rules for babel loader

// This plugin will generate html files with scripts injected 
const HtmlWebPackPlugin = require("html-webpack-plugin");

const htmlPlugin = new HtmlWebPackPlugin({
  template: "./src/index.html",
  filename: "./index.html"
});

module.exports = {
module: {
  rules: [
    {
      test: /\.js$/,
      exclude: /node_modules/,
      use: {
        loader: "babel-loader" // it will look for .babelrc
      }
    },
    {
      test: /\.html$/,
      use: [
        {
          loader: "html-loader"
        }
      ]
    },
    {
      test: /\.css$/,
     use: [
        {
          loader: "style-loader"
        },
        {
          loader: "css-loader",
          options: {
            modules: true,
            importLoaders: 1,
            localIdentName: "[name]_[local]_[hash:base64]",
            sourceMap: true,
            minimize: true
          }
        }
      ]
    },
    {
        test: /\.(png|jpg|gif|svg|eot|ttf|woff|woff2)$/,
        use: {
            loader: 'url-loader',
            options: {
            limit: 10000
            }
        }
    }
  ]
},
plugins: [htmlPlugin]
};

index.html:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>React 2</title>
</head>
<body>
  <section id="index"></section>
</body>
</html>

index.js:

import React from "react";
import {ReactDOM} from 'react-dom';

console.log('loading index js');
const App = () => {
    return (
      <div>
        <h3>Our Application Is Alive</h3>
        <p>This isn’t reality. This — is fantasy.</p>
        <p>Yes I am quoting Star Trek I cant help it.</p>
      </div>
    );
  };

ReactDOM.render(<App />, document.getElementById('index'));

构建后,./dist/index.html未更新,参见内容:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>React and Webpack4</title>
</head>
<body>
  <section id="index"></section>
<script type="text/javascript" src="main.js"></script></body>
</html>

在编译消息中找到以下内容:

Child html-webpack-plugin for "index.html":
     1 asset
    Entrypoint undefined = index.html
    [./node_modules/html-webpack-plugin/lib/loader.js!./src/index.html] 
327 bytes {0} [built]
tct7dpnv

tct7dpnv1#

webpack配置需要有一个条目和可选的输出(请求多个条目)。它不知道哪些条目需要添加到index.html。
如文档中的示例所示:

const HtmlWebpackPlugin = require('html-webpack-plugin')

module.exports = {
  entry: 'index.js',
  output: {
    path: __dirname + '/dist'
  }
}

它会将index.js添加到index.html文件中。

az31mfrm

az31mfrm2#

正如我刚才在这里报告的https://github.com/jantimon/html-webpack-plugin/issues/1259,属性语法是“fileName”而不是“filename”

csbfibhn

csbfibhn3#

这是webpack 4中的无意义错误,使用早期版本的webpack(如3.0.7)运行或忽略stats: { children: false, }的错误将修复此https://github.com/jantimon/html-webpack-plugin/issues/895

相关问题