首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否在Nuxt热重新加载时清除控制台?

是否在Nuxt热重新加载时清除控制台?
EN

Stack Overflow用户
提问于 2021-07-29 16:04:15
回答 2查看 205关注 0票数 1

在Vue中,我只编辑了main.js文件来添加:

代码语言:javascript
复制
// on hot-reload clear the console
window.addEventListener("message", (e) => {
    if (e.data && typeof e.data === "string" && e.data.match(/webpackHotUpdate/)) {
        console.clear();
    }
});

但是在Nuxt中,你只有配置文件。我尝试将该脚本添加到plugins文件夹中,但控制台从未清除。

插件文件夹中的onReload.js。这个文件似乎只在我手动刷新页面时运行,而不是在热重新加载时运行(即,当我保存任何文件时):

代码语言:javascript
复制
console.log("hello there");
window.addEventListener("message", (e) => {
  console.log("e.data is >  ", e.data);
  console.log("=== string > ", typeof e.data === "string");
  console.log("does it match > ", e.data.match(/webpackHotUpdate/));
  if (e.data && typeof e.data === "string" && e.data.match(/webpackHotUpdate/)) {
    console.log("hello world");
    console.clear();
  }
});

Nuxt配置文件:

代码语言:javascript
复制
  plugins: [{ mode: "client", src: "~/plugins/onReload" }],

任何想法都很受欢迎!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-29 16:26:04

您将需要添加一个插件。

/plugins/onReload.js将包含您的函数:

代码语言:javascript
复制
Object.keys(window.__whmEventSourceWrapper).forEach((key) => {
  window.__whmEventSourceWrapper[key].addMessageListener((e) => {
    if (e.data.match(/built/)) {
      console.clear()
    }
  })
})

然后,在nuxt.config.js中,您需要导入插件,并禁用服务器端渲染

代码语言:javascript
复制
plugins: [
    { mode: client, src: '~/plugins/onReload' }
]
票数 1
EN

Stack Overflow用户

发布于 2021-08-25 08:49:42

被接受的答案对我不起作用,所以我最终用以下代码创建了clear-console.client.js……

代码语言:javascript
复制
export default () => {
  if (module.hot) {
    module.hot.accept() // already had this init code

    module.hot.addStatusHandler((status) => {
      if (status === 'prepare') console.clear()
    })
  }
}

然后在nuxt.config.js中添加下面的plugins: ['~/plugins/clear-console.client.js']

希望这对其他人有帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68579348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档