webpack dev服务器的懒惰模式有什么作用?

pde*_*eva 15 javascript webpack webpack-dev-server

我正在运行我的webpack-dev-server

webpack-dev-server --lazy --inline --progress --colors --port 8082
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试访问时,我的浏览器显示404错误bundle.js.

一切似乎罚款,因为如果我更换--lazy--hot,事情做工精细.

究竟做了--lazy什么呢?

更新:

这是webpack文件 -

module.exports = {
    devtool: "source-map",
    entry: [
        'webpack/hot/only-dev-server', // "only" prevents reload on syntax errors
        "./app/main.js"
    ],
    output: {
        path: "./js",
        filename: "bundle.js"
    },
    module: {
        loaders: [
            { test: /\.css$/, loader: "style-loader!css-loader"},
            { test: /\.js$/,  exclude: /node_modules/, loaders: ["react-hot"] }
        ]
    }
};
Run Code Online (Sandbox Code Playgroud)

Kon*_*zov 3

经过一番调试,我发现webpack-dev-middleware(在webpackDevMiddleware函数中)有以下 if 语句:

// in lazy mode, rebuild on bundle request
if(options.lazy && (!options.filename || options.filename.test(filename))) {
    rebuild();
}
Run Code Online (Sandbox Code Playgroud)

rebuild()函数永远不会执行,因为options.filename.test(filename)aways返回false。这是因为filenamevalue 有一个斜杠(“/bundle.js”)。因此,我更改了options.filename正则表达式以允许使用此斜杠,并解决了问题。

我在github上提出了拉取请求: https://github.com/webpack/webpack-dev-middleware/pull/62