返回

搞定chrome调试时console.log的cjs.js输出问题

前端

调试 Vue 时消除控制台中的 cjs.js 行号

调试 Vue.js 应用程序时,你可能会遇到一个恼人的问题:在控制台中打印输出时,它总是显示 cjs.js 中的行号,而不是源文件名和行数。这使得调试过程变得非常困难。本文将深入探讨这个问题,并提供详细的解决方案。

问题的原因

这个问题是由 Chrome 中的 "忽略列表" 功能引起的。此功能允许你忽略特定 URL 模式的内容,例如 JavaScript 捆绑文件。当启用 "忽略列表" 时,Chrome 会将 cjs.js 文件添加到忽略列表中,从而导致控制台中显示 cjs.js 的行号,而不是源文件的行号。

解决方案

解决这个问题的办法很简单,只需禁用 "忽略列表" 功能即可:

  1. 打开 Chrome 浏览器。
  2. 点击右上角的三个点。
  3. 选择 "设置"。
  4. 在搜索栏中输入 "Ignore List"。
  5. 点击 "忽略内容设置"。
  6. 找到 "enable Ignore Listing" 并取消勾选。
  7. 重新启动 Chrome 浏览器。

验证解决方案

重新启动 Chrome 后,在控制台中打印输出,你应该能够看到源文件名和行号。

其他方法

如果你在禁用 "忽略列表" 后仍然无法看到源文件名和行号,可以尝试以下其他方法:

  • 确保你使用的是最新的 Chrome 版本。
  • 禁用所有扩展程序。
  • 重置 Chrome 设置。

向 Chrome 提交错误报告

如果你已经尝试了所有上述方法但仍然无法解决问题,则可以向 Chrome 提交错误报告。

示例代码

为了演示这个问题,请考虑以下 Vue.js 组件:

<template>
  <h1>{{ message }}</h1>
</template>

<script>
export default {
  data() {
    return {
      message: 'Hello, world!'
    }
  }
}
</script>

在 Chrome 控制台中打印 this.message 会显示以下输出:

"Hello, world!" @ cjs.js:16:26

这并不是我们想要的,我们希望看到以下输出:

"Hello, world!" @ App.vue:6:11

常见问题解答

1. 为什么我需要禁用 "忽略列表" 功能?

"忽略列表" 功能会将 cjs.js 文件添加到忽略列表中,从而导致控制台中显示 cjs.js 的行号,而不是源文件的行号。禁用此功能可以让 Chrome 在控制台中显示源文件名和行号。

2. 我需要做什么才能重新启用 "忽略列表" 功能?

要重新启用 "忽略列表" 功能,请按照以下步骤操作:

  1. 打开 Chrome 浏览器。
  2. 点击右上角的三个点。
  3. 选择 "设置"。
  4. 在搜索栏中输入 "Ignore List"。
  5. 点击 "忽略内容设置"。
  6. 找到 "enable Ignore Listing" 并勾选。

3. 我看不到 "enable Ignore Listing" 选项。

"enable Ignore Listing" 选项可能只有在已经将文件添加到忽略列表时才会显示。确保你已经将文件添加到忽略列表中,然后才能看到该选项。

4. 我仍然无法在控制台中看到源文件名和行号。

如果你在禁用 "忽略列表" 后仍然无法看到源文件名和行号,可以尝试其他方法,例如更新 Chrome、禁用扩展程序或重置 Chrome 设置。

5. 为什么 Chrome 要隐藏源文件名和行号?

Chrome 隐藏源文件名和行号是为了提高性能。当 "忽略列表" 功能启用时,Chrome 会将文件添加到忽略列表中,从而告诉 Chrome 不要加载这些文件的内容。这可以提高加载和执行 JavaScript 捆绑文件的速度。