close

dev.browserLogs

  • 类型:
type BrowserLogs =
  | boolean
  | {
      stackTrace?: 'summary' | 'full' | 'none';
    };
  • 默认值: { stackTrace: 'summary' }

控制是否将浏览器运行时错误转发到终端。

当设置为 true 时,Rsbuild 的客户端脚本会监听浏览器中的 window.error 事件,以及未捕获的 Promise 拒绝事件,并将这些错误信息发送到开发服务器。开发服务器会在终端中打印这些日志,前缀为 [browser],同时带有改进的格式和上下文信息。

对于只能读取终端输出的 AI Coding Agents,这一特性有助于它们更好地理解运行时错误并协助排查问题。

示例

例如,如果你的应用中有以下代码:

src/App.jsx
const App = () => {
  const item = undefined;
  return <div>{item.name}</div>;
};

浏览器会抛出错误,Rsbuild 会将此错误转发到终端:

error   [browser] Uncaught TypeError: Cannot read properties of undefined (reading 'name')
 at handleClick (src/App.jsx:3:0)

选项

stackTrace

  • 类型: 'summary' | 'full' | 'none'
  • 默认值: 'summary'

控制在将浏览器错误转发到终端时,错误堆栈的显示方式。

  • 'summary' —— 仅显示首个堆栈帧(例如 (src/App.jsx:3:0))。
  • 'full' —— 显示完整的堆栈信息,包含所有堆栈帧。
  • 'none' —— 不显示任何堆栈信息。

例如,将 stackTrace 设置为 'full':

rsbuild.config.ts
export default {
  dev: {
    browserLogs: {
      stackTrace: 'full',
    },
  },
};

完整的错误堆栈如下:

error   [browser] Uncaught TypeError: Cannot read properties of undefined (reading 'name')
    at handleClick (src/App.jsx:6:0)
    at someFunction (src/App.jsx:12:0)
    at App (src/App.jsx:6:0)
    ...

禁用

dev.browserLogs 设置为 false 可以禁用此行为。

rsbuild.config.ts
export default {
  dev: {
    browserLogs: false,
  },
};

版本历史

版本变更内容
v1.5.13新增该选项
v1.6.0新增 stackTrace 选项