Webpack开发服务器未创建打包文件。

3

我是webpack的新手,正在使用webpack dev server进行HOT reload。我的配置如下:

new WebpackDevServer(webpack(config), {
    publicPath: "./public/dist/bundle.js",
    hot: true,
    historyApiFallback: true,
    proxy: {
        '*': {
            target: 'http://localhost:3000',
            secure: false
        }
    }
}).listen(8080, 'localhost', function (err, result) {
    if (err) {
        return console.log(err);
    }

    console.log('Listening at http://localhost:8080/');
});

当我启动webpack开发服务器时,我期望它根据指定的路径./public/dist/bundle.js打包js文件。但实际情况是并没有这么做。然而,它会输出一些信息,似乎已经完成了打包处理:

Version: webpack 1.13.1
Time: 93044ms
                  Asset    Size  Chunks             Chunk Names
./public/dist/bundle.js  999 kB       0  [emitted]  main

但在我的文件系统中,不存在 bundle.js 文件。

我可以通过先运行 webpack ,然后调用 webpack dev server 来使其正常工作!

我犯了什么错误?


你是否使用了正确的 webpack.config.js?从以下问题中复制 https://dev59.com/_1gQ5IYBdhLWcg3wLQuW - zloctb
2个回答

6
请注意,webpack-dev-server运行在内存中,因此按照定义,它不会生成任何文件。如果您需要实际的文件,请使用webpack --watch。如果您想同时获取文件和HMR,可以并行运行webpack --watch和webpack-dev-server。

那么我们无论如何都不能将内存中的捆绑写入文件吗? - Ant's
1
这有点违背了 webpack-dev-server 的理念,因为它需要尽可能快地运行。如果你想要实际的文件,那么在旁边运行 webpack --watch 就可以了。查看 dev server 源代码,了解它是如何实现其魔力的。 - Juho Vepsäläinen

3

虽然它是内存中运行的,但您可以通过以下方式将其设置为同时编写捆绑包(WebPack v4):

"writeToDisk: true

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接