我正在运行我的 webpack-dev-server
webpack-dev-server --lazy --inline --progress --colors --port 8082
但是,当我的浏览器尝试访问时,会显示 404 错误bundle.js
.
其他一切看起来都很好,因为如果我更换--lazy
with --hot
,一切正常。
到底是做什么的--lazy
那么呢?
Update:
这是 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"] }
]
}
};
经过一些调试我发现在webpack-dev-middleware
(in webpackDevMiddleware
函数)有以下 if 语句:
// in lazy mode, rebuild on bundle request
if(options.lazy && (!options.filename || options.filename.test(filename))) {
rebuild();
}
The rebuild()
函数永远不会被执行,因为options.filename.test(filename)
客场回归false
。那是因为filename
值有一个斜杠(“/bundle.js”)。所以,我改变了options.filename
正则表达式允许这个斜杠并解决了这个问题。
我在github上发起了一个pull request:https://github.com/webpack/webpack-dev-middleware/pull/62 https://github.com/webpack/webpack-dev-middleware/pull/62
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)