为什么我必须在运行webpack-dev-server时将bundle.js脚本放在html中

时间:2017-07-25 12:18:47

标签: reactjs webpack webpack-dev-server

我正在从package.json脚本运行webpack-dev-server。

当我没有在我的index.html中添加标记时,即使webpack-dev-server应该自动将它放在那里,也不会加载bundle。

我的代码如下所示:

<body>
  <div id="my-app"></div>
  <script src="bundle.js"></script>
  <script type="text/javascript" src="app.bundle.aa2801db8d757c2f2d78.js"></script>
</body>

我在运行webpack-dev-server时将第一个bundle放在那里,当我为生产构建项目时,第二个bundle由HTMLWebpackPlugin生成。基本上我想摆脱生产代码中的第一个包。

感谢您的任何建议。

3 个答案:

答案 0 :(得分:1)

您需要从HTML中引用您的javascript包,因为它不会自动插入。

但是,您可以使用HtmlWebpackPlugin自动添加捆绑引用。它已添加到webpack.config.js文件的插件部分,如下所示:

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

module.exports = {
    entry: "./source/index.js",
    module: {
        // keep the rules you've already got
    },
    plugins: [
        new HtmlWebpackPlugin({
            template: "./index.html"
        }),
        // ... keep all your other plugins here...
    ]
}

确保模板的值指向HTML文件...

来源:此代码取自my webpack project template on github。您可以在那里看到完整的配置文件和更多解释性文字。

答案 1 :(得分:0)

所以我理解的是你不知道bundle的重要性。基本上,每当你运行代码时,它都会编译bundle.js中的所有内容(包括应用程序的所有组件)。

成功编译webpack后,您可以查看bundle.js。您将看到webpack仅编译并解析该bundle中的所有内容。

因此,在您的webpack中添加它是很重要的,否则您的代码将永远无法运行。

答案 2 :(得分:0)

好的,我的坏人。 HTMLWebpackPlugin未正确配置。

感谢您的帮助。