English | 简体中文
Feat(Netwrk) 新增配置项 network.ignoreUrlRegExp 以跳过一些请求。 (PR #623)Fix(Core) 修复 vConsole.setOption() 中可能存在的原型污染问题。 (issue #616 #621)Fix(Core) 修复插件事件 ready 在插件完成渲染前就被触发的问题。 (issue #591)Fix(Log) 修复调用 console.clear() 时没有重置 group 层级的问题。 (issue #611)Fix(Log) 兼容 iOS(小于 13.4)不支持 ResizeObserver 的情况,代价是打印大批量日志可能会有性能问题。 (issue #610)Fix(Network) 修复可能由 sendBeacon 引发的 "Cannot read property" 错误。 (issue #615)Feat(Log) 新增虚拟滚动列表以提升性能,并支持快速滚动到顶部/底部。 (PR #570)Feat(Log) 新增对 console.group(), console.groupCollapsed(), console.groupEnd() 方法的支持。 (issue #545)Feat(Network) 新增虚拟滚动列表以提升性能。Feat(Network) 新增 request 的 "Start Time"(发起时间)。Feat(Network) 使用 curl 格式作为 request 的复制内容,而非 url。 (issue #410)Fix(Storage) 修复内容溢出的元素无法滑动的问题。 (issue #542)Fix(Core) 修复 <select> 的点击事件问题。 (PR #577)Perf(Log) 优化打印日志时的性能。 (PR #567)Fix(Core) 修复因设置 pluginOrder 导致插件面板排序错误的问题。 (issue #559)Fix(Core) 修复因 Touch 事件中的 preventDefault 导致的 intervention 错误。 (issue #546)Fix(Log) 修复 window.onerror 丢失换行的问题。Fix(Log) 修复清除命令行按钮在 iOS Safari 中无法点击的问题。 (PR #564)Fix(Log) 修复一处误判循环引用对象的笔误。 (issue #566)Fix(Log|Network) 以标准 JSON 格式复制对象或数组。 (issue #547)Fix(Network) 修复因 window 对象被代理导致 Fetch 一直为 pending 状态的问题。 (issue #556)Fix(Storage) 修复因设置 storage.defaultStorages 导致 Storage 面板排序错误的问题。 (issue #560)Chore 添加 env['no-core-js'] 选项来停用构建时使用 core-js polyfill。 (PR #562)Fix(Log) 修复当销毁后再次初始化 vConsole 时失去追踪 logs 的问题。Fix(Network) 修复 resp.body undefined 错误。 (issue #531)Fix(Network) 修复 xhr.setRequestHeader 被覆盖改写时丢失 Request Headers 的问题。 (issue #533)Chore 更新 NPM 依赖。Fix(Core) 修复极短时间内重复初始化 vConsole 导致的报错。 (issue #525)Fix(Log) 修复 console.time | console.timeEnd 不输出日志的问题。 (issue #523)Fix(Element) 修复更新 attributes 时引起的 undefined is not an object 错误。 (issue #526)Fix(Network) 当请求完成后,不再代理 response body reader。Chore 修复 Svelte 在 Windows 环境中未被 Babel 转义的问题。 (PR #528)Fix(Network) 修复回包超大时导致的卡死问题。 (issue #515)Fix(Network) 修复 XHR 中缺失显示 Request Headers 的问题。 (issue #522)Fix(Network) 修复 response.size 错误。Fix(Network) 删除调试日志。Chore 在构建时自动删除 console.log 以确保调试日志不会出现在正式版本中。Chore 添加新的编译命令以编译出不同场景下的文件。Fix(Network) 修复当 readyState === 3 时的 responseSize 错误。Feat(Core) 新增配置项 pluginOrder 来调整插件面板的排序,见 公共属性及方法。Feat(Core) 切换插件面板时,面板会自动滚动到上次的位置。Feat(Network) 新增显示 Response 的体积。Feat(Network) 新增对 transfer-encoding: chunked 的支持,现在可记录流式回包(stream response)。Feat(Network) 展示时裁剪过大的 Response 回包以提高渲染性能。Refactor(Network) 提高网络记录的准确性,以避免被外部库(如 Axios)覆盖;方法是对 XMLHttpRequest | fetch 使用 Proxy。Feat(Log) 新增配置项 log.showTimestamps,见 公共属性及方法。Fix(Core) 使用模拟的 click 事件以避免某些场景下原生 click 事件不生效的问题。Fix(style) 修复微信 Webview 中的 CSS transition 失效的问题,通过使用 bottom 而非 transform。Fix(Core) 修复在 onReady 回调中调用 vConsole 方法导致报错的问题。 (issue #516)Refactor(Storage) 提高健壮性。Fix(Core) 修复当 VConsole 作为新模块 import 时 VConsole.instance 为空的问题。Chore(Core) 修复由外部依赖库引起的 TypeScript 类型声明错误问题。Feat(Core) 新增静态属性 VConsole.instance 以获取实例化后的单例 vConsole 对象。Feat(Core) 新增配置项 storage.defaultStorages,见 公共属性及方法。Feat(Core) 更新 vConsole.setOption() 用法:通过 setOption('log.maxLogNumber', 20) 来单独设置 maxLogNumber 字段,或通过 setOption({ log: { maxLogNumber: 20 }}) 来覆盖 log 对象。Feat(Core) 废弃一些配置项,参见下面。Fix(Plugin) 修复插件事件 renderTab 没有渲染出视图的 bug。Fix(Storage) 修复某些情况下的 Cookie 解析错误问题。 (issue #508, #509)废弃的配置项:
maxLogNumber:用 option.log.maxLogNumber 替代。maxNetworkNumber:用 option.network.maxNetworkNumber 替代。onClearLog:移除。Feat(Storage) 增加 "Clear" 按钮以批量删除所有 storage。 (issue #499)Fix(Storage) 修复无法删除 cookies 的问题。 (issue #499)Feat(Core) 支持自定义挂载点,配置项 vConsole.option.target 见 公共属性及方法。 (issue #455)Feat(Log) 新增插件方法 vConsole.log.log()|info()|...、vConsole.log.clear(),见 内置插件:属性及方法。Feat(Network) 新增插件方法 vConsole.network.add()|update()、vConsole.network.clear(),见 内置插件:属性及方法。Feat(Network) 支持限制请求数量,配置项 vConsole.option.maxNetworkNumber见 公共属性及方法。 (issue #492)Fix(Network) 在所有 HTTP Methods 中都会展示 Request Payload,而非仅限于 POST。 (issue #493)Fix(Element) 修复由于新增 Comment 节点导致的死循环问题。 (issue #491)Feat(Network) 格式化输出 response 中的 JSON 内容。 (issue #486)Fix(Style) 当 initial-scale !== 1 时,避免面板随页面缩放大小。Fix(Core) 修复 PC 模式下点击面板按钮无效的问题。 (issue #487)Fix(Network) 当 Query/Payload/Headers 是对象或数组时,展示为结构化的 JSON 格式而非 [object Object]。Fix(Network) 当某些情况下 XHR 对象被复用时,避免多次覆盖XHR对象的 onreadystatechange 以造成错误。 (issue #214)这个版本中,我们重构了大部分核心逻辑,并且使用 Svelte 作为所有面板的视图层模板引擎。
这带来了一些重大变化(Breaking changes),少数属性和方法无法保证向下兼容。
如果你是 vConsole 插件开发者,应该关注这些变化。
Breaking Changes:
Refactor(Core|Log|Network|Element) 使用 Svelte 作为所有视图的模板引擎。Refactor(Core) 删除 vConsole.(tabList | activedTab | $dom) 属性。Refactor(Plugin) 重命名 vConsole.showTab(pluginID) 为 vConsole.showPlugin(pluginID)。Refactor(Plugin) 更新插件事件 addTopBar 的配置参数 { data, onClick }: onClick 会接收 2 个参数(之前是 0 个): (event: Event, data?: any) => boolean,其中 data 为上述配置参数的 data 字段。Feat(Core) 删除辅助函数 vConsole.tool 和 vConsole.$。Common Updates:
Feat(Log) 支持展示对象键值为 Symbol 类型的键值对。Feat(Log) 命令行支持多级关键字提示。Feat(Log) 支持使用 %s, %d, %o 来格式化展示字符串,并且优化了 %c 的 CSS 样式逻辑。Feat(Log) 对存在大量键值的对象或数组,加入翻页逻辑以提升渲染性能,每 50 一页。Feat(Network) Request 的属性值支持复制。Feat(Element) 提升交互体验,选中的节点将会被高亮,并且展开/收起(Expand/Coolapse)基于选中的节点来进行。Feat(Style) 样式标签会在 vConsole 初始化后才注入 <head> 中,并在 vConsole 销毁后会自动移除。Refactor(Storage) 优化了部分交互体验。Fix(Network) 当 Fetch 发生 Error 时,会 throw 到外部,以符合标准实现。 (issue #458)Style(Log) 支持 BigInt 类型并更新 Symbol 类型的样式。Refactor(Style) 在 vConsole 初始化时再懒加载 style 标签(而非 import 后就加载)。Fix(Core) 使用 this || self 作为 globalObject,以避免 self is not defined 错误。 (issue #441)Fix(Log) 修复打印 Symbol 类型时产生的 Cannot convert a Symbol value to a string 错误。Fix(Log) 修复 commands 命令及其输出结果无法复制的问题。Fix(Network) 修复解码 URL 参数时产生的 URIError 错误。 (issue #470)Fix(Network) 修复潜在的由 forEach 引起的错误。 (issue #471)Chore 转换 Svelte 代码产物到 ES5 标准,以避免 ES6 引发的构建问题。 (issue #468)Refactor(Core) 为 VConsole 类的方法参数添加 Typescript 声明.Fix(Network) 修复未完成初始化时调用 setOption() 导致的 Cannot read property 'setAttribute' of null错误。 (PR #453 by @Zhangstring)Fix(Network) 修复 iOS < 11 时产生的 Fetch 错误. (PR #457 by @zimv)Chore 构建时自动生成 .d.ts 声明。 (RP #433 by @ManiaciaChao)Chore 从 Git 版本控制中移除 ./dist 目录。Fix(Log) 修正命令行输入框样式。 (PR #437 by @FredZeng)Fix(Storage) 修复由 globalThis 引起的报错。 (issue #438 #439)Chore 修复由 Svelte 引起的 const let 报错。 (PR #440 by @dellyoung)Feat(Log) 显示 audio 资源加载失败的报错。 (PR #419 by @zimv)Feat(Storage) 重写 Storage 面板,现支持添加/编辑/删除内容。 (PR #429 by @ManiaciaChao)Feat(Plugin) 新增第三方插件 vite-plugin-vconsole。 (by @vadxq)Refactor(Core) 开始使用 Svelte 作为模板引擎。 (PR #429 by @ManiaciaChao)Refactor(Core|Element) 转换 core 文件及 Element 面板为 .ts 文件。Fix(Log) 修复打印无 toJSON 方法的对象(如 Vue 实例)时会报错的问题。 (PR #431 by @sillyhong)Fix(Network) 修复不以 http 开头的 url 会报错的问题。 (issue #420)Fix(Network) 修复使用 Request 作为 Fetch 参数时的报错。 (PR #428 by @tatsunoneko)Fix(Network) 当 POST 数据为一个 JSON 字符串时亦以 key-value 型键值表来显示数据。 (issue #425)style 修正 LESS 数学运算符。 (PR #426 by @ManiaciaChao)Chore 修复执行 yarn serve 的报错。 (issue #424)Fix(Log) 不再合并包含 object 或 array 的重复日志,以避免合并结构相同但取值不同的对象。Fix(Log) 修复日志过滤器(Filter)在点选日志类型 tab 后不生效的问题。Fix(Network) 修复 url 以 // 开头时产生的错误。 (PR #414 by @kooritea)Chore 移除 babel-loader 的 exclude: node_modules 选项以避免第三方库的兼容性问题。 (issue #404, #407)Refactor(Log) 转换 Log 和 System 面板为 .ts 文件。Feat(Log) 新增显示资源(image/video/link/script)加载失败报错。 (PR #411 by @zimv)Chore 新增 Webpack 配置 target: ['web', 'es5'] 以避免兼容性问题。 (issue #404)Fix(Network) 修复 new URL('x', undefined) 第二参数为 undefined 时的报错。 (PR #409 by @moonkop)Feat(Storage) 对于大体积 value 先展示预览值,以避免堵塞渲染。 (issue #300)Feat(Storage) 新增复制按钮、删除按钮。Feat(Core) 当初始参数 theme 为空时,跟随系统默认主题色。Refactpr(Storage) 转换 Storage 面板为 .ts 文件。Fix(Network) 使用 forEach 而非 .entries() 来遍历 headers 以避免一些兼容性问题。 (issue #404)Fix(Network) 修复 Content-Type 为空时导致的报错。Fix(Network) 修复 "Invalid base URL" 错误。 (PR #402)Feat(Log) 新增输出 unhandledrejection 类型日志。 (PR #389 by @zimv)Feat(Network) 新增支持展示 navigator.sendBeacon() 的网络请求。 (PR #383 by @cola119)Feat(Network) 新增在 "General" 栏目展示 "Type" (Request Type) 字段,取值包括 xhr|fetch|ping。Refactpr(Core) 开始使用 TypeScript 重构代码。现在 Network 面板首先转成了 .ts 文件。Fix(Network) 修复移除 Network 面板后没有恢复原生 window.fetch() 方法的问题。Fix(Storage) 修复清除所有 cookie 时无法完全删除非顶级域名下的 cookie 的问题。 (issue #398)Fix(Element) 修复当 element 的 attributes 或 characterData 变化时 element 被嵌套渲染的问题。 (issue #399)Chore 升级到 Webpack5,并升级所有 NPM packages 到最新版本。Fix(Core) 修复因 selection 选区引起的点击事件无效问题。Fix(Log) 当日志数量达到 maxLogNumber 上限时清空对应的 cachedLogs。Fix(Log) 修复 XSS 漏洞。Chore(Babel) 修复由 catch 写法引起的 babel-loader 构建问题。 (PR #392 by @myl0204)Fix(Network) 修复语法笔误。 (PR #388 by @xovel)Feature(Log) 新增复制单行日志的能力。 (by @akai)Feature(Plugin) 新第三方插件 vconsole-vue-devtools-plugin。 (by @Zippowxk)Perf(System) 将 "System" 字段改名为 "Client",并新增 MacOS 系统版本号。Fix(Log) 使用自然排序来排序 object 和 array 的键值。 (issue #372)Fix(Network) 修复当 contentType 为 text/html 时潜在的 JSON 错误。 (by @zimv)Fix(Network) 修复 disableLogScrolling 参数在 Network 面板中不生效的问题。 (issue #282, #379)Feature(Core) 新增 setSwitchPosition(x, y) 方法以更新开关按钮的位置,见 Public Properties & Methods。Perf(Core) 添加 Symbol polyfill。(issue #361)Fix(Core) 修复 setOption() 后主题样式未及时更新的问题。Fix(Core) 删除 transitionEnd 以避免一些兼容性问题。(issue #364)Fix(Network) 修复 fetch 的 init 未考虑为可选参数的问题。(issue #363, #365)Fix(Network) 修复 XSS 漏洞。Feature(Core) 支持暗黑模式,配置项 vConsole.option.theme 见 Public Properties & Methods。(by @progrape)Feature(Core) 开关按钮加入拖拽安全区,避免遮挡全面屏手机底部操作区。(issue #353)Feature(Log) 指令输入框键入括号且自动补全括号后,光标将自动移动到括号内部。(issue #293)Feature(System) 增加显示 Location 信息。(issue #343)Feature(Network)支持 fetch 网络记录。(by @weiqian93)Feature(Network) 支持显示 Request Headers。Feature(Network) 仅显示简短网址,URL 参数将显示在详细信息中。(issue #291)Feature(Plugin) 新第三方插件 vconsole-stats-plugin。(by @smackgg)Fix(Core) 修复点击开关按钮后位置会被重置的问题。Fix(Core) 修复 document.documentElement.offsetHeight|offsetWidth 在新浏览器中不够准确的问题。(by @littlee)Fix(Core) 阻止用户事件派发到 readOnly 或 disabled 的 element 上。(by @norux)Fix(Core) 修复 nonce 查找不准确的问题。(by @sunderls)Fix(Core) 修复一个安全问题。(#345 by @QiAnXinCodeSafe)Fix(Core) 屏蔽 "webkitStorageInfo deprecation" 告警。Perf(Core) 删除 Symbol、Array.from polyfill。(issue #325, #275)Perf(Core) 日志中显示对象内所有的 enumerable 和 unenumerable 属性。 (issue #327)Chore 更新 Webpack DevServer 的配置项。(by @QinZhen001)Feature(Log) 增加 %c 以支持自定义日志样式,详情见 使用教程。Feature(Plugin) 增加 VConsole.VConsoleLogPlugin 等 VConsole.VConsole* 内置插件在 VConsole class 上的挂载。Fix(Core) 修复若干小问题。(#267 by @Molunerfinn, #272 by @domom)Fix(Storage) 修复当 cookie path=/ 或设置了 domain 时删除失败的问题。(#264 by @qianxinfeng)Perf(Core) 在 window DOMContentLoaded 而不是 window load 时显示 vConsole。Feature(Core) 增加 TypeScript 声明文件。(by @jas0ncn)Fix(Core) 修复开关按钮拖动后位置不对的问题。(by @rexschuang)Fix(Core) 修复若干小问题。(by @stenders)Fix(Log) 不在列表底部时避免自动滚动。(by @ele828)Feature(Log) 新增自动合并相同日志的能力。频繁输出相同日志时不再会被刷屏。Fix(Log) 修复格式化日志(如 console.log('[foo]', 'bar'))无法显示到 Log 面板的问题。Feature 新增控制台输入提示。 (by @65147400)Feature 支持 SessionStorage。 (by @hkc452)Fix 修复 JSON.stringify 函数被错误地改写的问题。Fix 修复清空日志时没有重置 logNumber 的问题。 (by @liuyuekeng)Fix 修复 Network 面板中 HTML 标签未被 encode 的问题。 (by @mokang)Fix 修复 Storage 面板 decode 内容时可能会导致崩溃的问题。 (by @wolfsilver)Fix 修复 CSP 签名获取失败问题。 (by @scotthuang)Perf 增加底部安全区域,适配 iPhone X 等全面屏。 (by @dingyi1993)Feature 支持 console.time() 及 console.timeEnd()。Feature 新增 disableLogScrolling 配置项(vConsole.option),用于禁止新日志引起的自动滚动到底部。Fix 修复初始化后立即调用 setOption 引起的错误。Fix 修复 cookies 显示错误的问题。Fix 修复 "Uncaught InvalidStateError" 错误。 (by @fireyy)Feature 新增 vConsole.showSwitch() 及 vConsole.hideSwitch() 方法,请查阅公共属性及方法。Feature 新增 onReady 及 onClearLog 回调方法,位于 vConsole.option。Feature 调用 console.clear 时将自动清除面板中的日志。Fix 修复 Windows 下构建引起的 \r 转义问题。Fix 修复 iOS8 或其它低版本系统中的 Symbol 错误。基础:
Feature 需要手动初始化 vConsole:var vConsole = new VConsole(option)。Feature 新增 vConsole.option 配置项,配置项可在实例化时传入,也可通过 vConsole.setOption(key, value) 更新。Feature 支持自定义按需加载内置插件,配置项为 option 里的 defaultPlugins 字段。Perf 支持 CSP 规则 unsafe-eval 和 unsafe-inline。Perf 优化 initial-scale < 1 时的 font-size。Log 插件:
Feature 支持 maxLogNumber 配置项,以控制面板内展示的最多日志数量。Fix 修复打印大型复杂 object 时引起的崩溃问题。Perf 只有 console.log('[system]', xxx) 这种将 [system] 放在第一位参数的写法,才会输出到 System 面板。因此可以规避 [foo] bar 这类格式无法正确打印到 Log 面板的问题。Network 插件:
Feature 新增 Query String Parameters 和 Form Data 两栏,以展示 GET 和 POST 的参数。Perf 自动格式化展示 JSON 类型的回包。Fix 修复 status 一直为 "Pending" 的问题。这种问题一般是引入了第三方的 HTTP 库而引起的。插件模块:
Feature 在 init 事件触发时/之后,插件实例内可以通过 this.vConsole 来获取到 vConsole 的对象实例。Feature 新增 updateOption 事件,以监测 vConsole.option 的更新。Feature 新增 Element 面板作为默认的内置插件。Feature 新增 Storage 面板作为默认的内置插件。Fix 捕获执行自定义命令行时发生的错误。Fix 修复一些情况下的 scrollHeight 错误。Fix 修正 iOS 8 下的 flex 布局问题。Perf 性能增强。Feature 新增 vConsole.removePlugin() 方法,请查阅公共属性及方法。Feature 新增 remove 插件事件,请查阅插件:Event 事件列表。Perf 页面不会随着 vConsole 的滚动而滚动。Fix 修正 window.onerror() 内的函数调用笔误。Feature 新增 addTopBar 插件事件,请查阅插件:Event 事件列表。Feature 新增日志类型筛选功能。Perf 若 log 列表不处于最底部,当打印新 log 时,列表则不会自动滚动到最新 log 处。Perf 优化了一些 UI 样式问题。Fix 修正打印 object 类型 log 时的 XSS 问题。Fix 在某些特殊情况中,开关按钮将不会再被定位出页面外。Fix 删除 V2.3.0 中的 tap 事件,恢复为 click 事件(依旧支持快速响应),以避免冲突。Perf 删除 System tab 中的 now 项目并新增 navigationStart 时间戳。Feature 支持逐级展开 Object 或 Array 的子元素。Feature 支持显示 Object 内的不可枚举属性。Perf 支持在 vConsole 的 DOM 容器内使用 tap 事件以代替 click 事件。Feature 在 System 面板中添加完整的 performance timing 测速点。Perf 在 README 中新增第三方插件列表。Feature 新增 vConsole.version 属性,以获取当前版本号。Feature 新增 XMLHttpRequest 的 xhr._noVConsole 属性,以控制一个网络请求是否显示在 Network tab 中。Feature 新增 vConsole.tool 及 vConsole.$ 辅助函数,请查阅辅助函数。Feature 公开部分 vConsole 的属性及方法,请查阅公共属性及方法。Fix 修复 window.onerror() 中 error 可能为空而导致堆栈读取错误的问题。Fix 修复当 xhr.readyState < 4 时读取 xhr.status 可能导致错误的问题。Fix 修复 vConsole 可能无法运行在 X5 内核浏览器的问题。Fix 修复某些设备不支持 localStorage 的问题。Fix 修复布尔值在 Log 面板展示不正确的问题。Perf 优化在 Android 设备下的 UI 表现。Feature 完全重构,支持自定义插件,请查阅插件:入门。Feature 支持手动输入、执行命令行。Feature 支持打印循环引用的对象。Feature 支持在 Network 面板查看请求的 headers 和 response。Perf 开关按钮不会再被拖出屏幕外部。Perf 自动在 System 面板打印 User Agent。Perf 打印 log 时会显示时间。Fix 修复 getDate() 返回错误时间的问题。Fix 修复同步 AJAX 变异步 AJAX 的问题。Feature 支持拖拽右下角开关。Fix 修复异步加载导致初始化失败的问题。Fix 修复发送 POST 请求时丢失数据的问题。Feature 新增网络面板,可展示 AJAX 请求。Feature 废弃 vConsole.ready() 方法。Perf 支持 Object/Array 结构化展示,不再以 JSON 字符串输出。Perf 新增英文 README 及 CHANGELOG 文档。Perf 优化 UI 体验。Feature 支持 window.onerror() 的异常信息捕获。Feature 支持 [default|system|...] 日志格式,将 log 输出到指定面板。Fix 修复 webpack 编译失败的问题。Fix 修复打印 HTML 字符串可能导致的 XSS 问题。Fix 修复 package.json 的 main 路径。Perf 优化 example 的 demo 页面。