由Webpack配置中的“输入”引起的构建错误

时间:2018-08-14 20:11:11

标签: reactjs webpack

我实际上对ReactJs刚起步,我真的很喜欢它。

因此,我去了webpack的官方网站,我自己生成了一个简单的webpack配置,如下所示:

const HtmlWebPackPlugin = require("html-webpack-plugin");

module.exports = {
    "mode": "development",
    "entry": "src/index.js",
    "output": {
        "path": __dirname+'/dist',
        "filename": "[name].[chunkhash:8].js"
    },
    "module": {
        "rules": [
            {
                "test": /\.(js|jsx)$/,
                "exclude": /node_modules/,
                //"exclude": [/node_modules/, require.resolve('./index.html')],
                "use": {
                    "loader": "babel-loader",
                    "options": {
                        "presets": [
                            "env",
                            "react"
                        ]
                    }
                }
            },
            {
                "test": /\.html$/,
                "use": [
                  {
                    "loader": "html-loader"
                  }
                ]
            }
        ]
    },
    "plugins": [
        new HtmlWebPackPlugin({
          template: "./src/index.html",
          filename: "./index.html"
        })
    ]
}

但是当我运行“ npm run build”时,出现错误消息:Entrypoint undefined = ./index.html

我一直试图找出问题所在,直到我在webpack配置中注释掉了这一行:"entry": "src/index.js"和“ npm run build”起作用了!

我想知道的是为什么?配置的“输入”部分出了什么问题?如我所说,我是ReactJs的新手,所以我还在尝试学习很多东西。

谢谢!

2 个答案:

答案 0 :(得分:1)

我建议您使用选项context: path.resolve(__dirname, 'src),因此您需要将条目指定为entry: './index.js'

上下文将提供绝对路径,因此您可以在 entry 选项

上使用相对路径。

Webpack - Entry and Context

答案 1 :(得分:0)

我猜您的输入路径不正确,并且webpack无法从正确的目录加载文件。您应该使用类似这样的东西:

arrays