我有一个带有 Webpack Dev Middleware 的 Vue.js 站点(由 HTTP.sys Web 服务器通过 ASP.NET Core 站点提供服务,尽管我猜这并不重要)。有谁知道我如何设置我的网站以在每次热重载事件时清除浏览器的 Javascript 控制台?
这是我能找到的唯一相关链接,但它似乎适用于我没有使用的网络服务器。我不确定为什么特定的 Web 服务器很重要。
我有一个带有 Webpack Dev Middleware 的 Vue.js 站点(由 HTTP.sys Web 服务器通过 ASP.NET Core 站点提供服务,尽管我猜这并不重要)。有谁知道我如何设置我的网站以在每次热重载事件时清除浏览器的 Javascript 控制台?
这是我能找到的唯一相关链接,但它似乎适用于我没有使用的网络服务器。我不确定为什么特定的 Web 服务器很重要。
在我的主应用程序 .js 文件中:
if (module.hot) {
module.hot.accept() // already had this init code
module.hot.addStatusHandler(status => {
if (status === 'prepare') console.clear()
})
}
这让它一直为我工作。
另请参阅https://webpack.js.org/api/hot-module-replacement/#addstatushandler。
您的链接包含对您问题的答复。只需在您的main.js
文件中添加:
window.addEventListener('message', (e) => {
if (e.data && typeof e.data === 'string' && e.data.match(/webpackHotUpdate/)) {
console.log('hot reload happened')
console.clear()
}
})
完整的 main.js 文件示例:
import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'
Vue.config.productionTip = false
new Vue({
router,
store,
render: h => h(App)
}).$mount('#app')
window.addEventListener('message', (e) => {
if (e.data && typeof e.data === 'string' && e.data.match(/webpackHotUpdate/)) {
console.log('hot reload happened')
console.clear()
}
})
编辑:我没有阅读您对 github 问题的回答。您能否提供一些JSON.stringify(e)
关于多个事件的事件消息,以便我们检查您有什么?