webpack-dev-server热重新加载不起作用
我的文件结构是:
dist css style.css index.html js bundle.js src css style.css index.html js main.js node_modules webpack.config.js package.json
我的webpack.config.js看起来像:
module.exports = { entry: './src/js/main.js', output: { path: __dirname, filename: './dist/js/bundle.js' }, module: { loaders: [ { test: /\.js$/, exclude: /(node_modules)/, loader: 'babel', query: { presets: ['es2015'] } }, { test: /\.vue$/, loader: 'vue' } ] } };
我运行:
webpack-dev-server --content-base dist --hot
它build立,似乎是在工作。 localhost:8080显示预期的结果,但热重载不起作用。 当我改变一个文件,我可以在terminal上看到重build正在发生,但浏览器中没有任何反应。 我缺lessconfiguration中的东西吗?
当使用webpack-dev-server
,它会在内部构build所有文件, 而不会将它们吐出到输出path中。 单独运行webpack
,没有开发服务器,实际编译到磁盘。 dev服务器在内存中执行所有的操作,加快了重新编译的速度。
要解决您的热重新加载问题,请将内容库设置为源目录并启用内联模式
像这样:
webpack-dev-server --content-base src --hot --inline
我的工作是在我的index.html
文件中写<script src="bundle.js">
而不是<script src="dist/bundle.js">
。
// index.html <script src="bundle.js"></script> // works <script src="dist/bundle.js"></script> // doesn't work!
保持dist/bundle.js
作为输出文件工作完全正常,如果你只是使用webpack
构build它。 但是当使用webpack-dev-server
,文件系统中已经存在的静态文件将继续被提供,而不是最新的热replace文件。 看来webpack-dev-server
在html文件中看到dist/bundle.js
时会感到困惑,即使将webpack.config.js
configuration为该path,也不会热replace它。
– 在线 – 热对我来说不是问题
如果你正在使用REDX可以试试这个。
由于一些随机的原因, redux-devtools
不允许我重新加载。 尝试从根组件中删除它,并减lessredux compose
configuration。
注意:在商店configuration中使用这个configuration使用redux devtool浏览器扩展: window.devToolsExtension ? window.devToolsExtension() : f => f
window.devToolsExtension ? window.devToolsExtension() : f => f
此外,必须阅读: https : //medium.com/@rajaraodv/webpacks-hmr-react-hot-loader-the-missing-manual-232336dc0d96#.ejpsmve8f
或者尝试重新加载3:例如: https : //github.com/gaearon/redux-devtools/commit/64f58b7010a1b2a71ad16716eb37ac1031f93915
尝试这个:
在你的package.json
文件中,删除包含"test" "echo \"Error: no test specified\" && exit 1"
在脚本对象下"test" "echo \"Error: no test specified\" && exit 1"
,并用下面的代替:
... "scripts": { "start": "webpack-dev-server --hot" }, ...
然后重新启动你的项目,只需使用npm start
。
当我遇到这个问题时,这对我有效。
编辑:你可以分享你的package.json
文件?
尝试添加到webpack.config.js以及
devServer: { inline: true, port: 3000, hot: true },