我知道大多数人都有相反的问题,但我实际上想禁用自动重新加载功能。
这就是我运行服务器的方式:
webpack-dev-server --open --progress
这是我的开发服务器配置:
devServer: {
contentBase: 'app',
port: 9005,
hot: false,
inline: false
}
版本:
"webpack": "1.14.0",
"webpack-dev-middleware": "1.9.0",
"webpack-dev-server": "^1.16.2",
"webpack-hot-middleware": "2.13.2",
"webpack-md5-hash": "0.0.5"
通过此设置,Webpack 开发服务器将初始页面打开为
localhost:9005/webpack-dev-server/
,并启用自动重新加载(iframe
模式)。当我将 inline
设置为 true
时,它会打开 localhost:9005
并且自动重新加载仍然处于打开状态(inline
模式 => websockets)。
有没有办法完全禁用自动重新加载?
webpack 2.x 和 3.x 的工作解决方案
config.devServer = {
hot: false,
inline: false,
}
Webpack 客户端脚本默认添加到您的捆绑包中(自 Webpack 2 起),但您可以通过将
--no-inline
添加到 CLI 命令来禁用这些脚本。
作为解决方法,我从捆绑包中排除了 webpack 客户端脚本。这似乎阻止了自动重新加载的发生。我通过将这些脚本重定向到空加载器来做到这一点。
{test: /webpack-dev-server\\client/, loader: "null-loader"},
这是
webpack-dev-server
3.x 的更新。像这样更新你的config/webpack/development.js
:
process.env.NODE_ENV = process.env.NODE_ENV || 'development';
const environment = require('./environment');
environment.config.merge({
devServer: {
hot: false,
inline: false,
liveReload: false
}
});
module.exports = environment.toWebpackConfig();
也没有找到明显的解决方案(webpack-dev-server 版本 1.16.5)。
部分解决方案似乎是:
webpack-dev-server --watch-poll 99999999999
这不会自动重建。但在初始构建后它仍会重新加载浏览器窗口。
对于 webpacker 用户:
在 config/webpack/development.js 中
environment.config.set('devServer.liveReload', false)