我在 webpack 5/Vuejs 3 应用程序中使用 webpack-dev-server 来利用在应用程序开发期间将代码更改保存在编辑器中后立即显示在浏览器中的功能(对该功能的详细说明我感兴趣,但我认为它在“热”或“HMR”下交易)。
好消息是这原则上有效。我可以在我的编辑器中更新一个 .vue 文件,保存它,查看 webpack-dev-server 重新编译,查看 JS 控制台日志,表明它检测到更改并且更改(例如文本更改)显示在浏览器页面中.
但是,当在初始(硬)页面加载后导航到另一个路由(URL)时,初始页面 URL 与当前 URL 不同,代码更改不会反射(reflect)在浏览器页面中。执行所有其他步骤,例如编译、客户端上的更改检测、重新加载更改、日志,但它只是不更新浏览器页面。但是,当您导航到其他地方并返回时,它会更新页面。
这个问题是不是听起来很熟悉?我想即使在单页应用程序中导航到另一个路由 (URL) 时,实时更新也能正常工作(如果我的期望错误,请更正)。
我的相关部分webpack.conf.js
(没有什么特别的恕我直言):
devServer: {
historyApiFallback: {
rewrites: [{
from: /.*/,
to: path.posix.join(config.dev.assetsPublicPath, 'index.html')
}]
},
hot: true,
host: HOST || config.dev.host,
port: PORT || config.dev.port,
open: config.dev.autoOpenBrowser,
proxy: config.dev.proxyTable
}
更新 有趣的是,
<style>
的更新即使初始页面加载 URL 已更改,部分也会立即反射(reflect)。
最佳答案
只需写historyApiFallback: true
.它应该工作。
devServer: {
historyApiFallback: true,
port: PORT || config.dev.port,
hot: true,
open: config.dev.autoOpenBrowser,
proxy: config.dev.proxyTable
},
关于javascript - webpack-dev-server 不会在代码更改时重新渲染页面(从初始页面导航时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69262506/