English | 简体中文
Feat(Netwrk)
Add new option network.ignoreUrlRegExp
to skip some requests. (PR #623)Fix(Core)
Fix prototype pollution in vConsole.setOption()
. (issue #616 #621)Fix(Core)
Fix plugin event ready
triggering before its HTML finishes rendering. (issue #591)Fix(Log)
Reset group state when console.clear()
is called. (issue #611)Fix(Log)
Compatible with iOS (less than 13.4) that does not support ResizeObserver
, but there may be a potential performance issue when printing a large number of logs. (issue #610)Fix(Network)
Fix possible "Cannot read property" error by sendBeacon
. (issue #615)Feat(Log)
Add recycle scrolling to imporove performance, and add scroll to top/bottom buttons. (PR #570)Feat(Log)
Add support for console.group(), console.groupCollapsed(), console.groupEnd()
. (issue #545)Feat(Network)
Add recycle scrolling to imporove performance.Feat(Network)
Add "Start Time" of a request.Feat(Network)
Use curl
instead of url
as the copy value of a request. (issue #410)Fix(Storage)
Fix an event bug that overflow content cannot scroll. (issue #542)Fix(Core)
Fix click event on <select>
elements. (PR #577)Perf(Log)
Optimize rendering performance when adding logs. (PR #567)Fix(Core)
Fix plugin panel sorting error when setting pluginOrder
option. (issue #559)Fix(Core)
Fix intervention error caused by preventDefault
in Touch
events. (issue #546)Fix(Log)
Fix window.onerror
missing line breaks.Fix(Log)
Fix unclickable vc-cmd-clear-btn
on iOS Safari. (PR #564)Fix(Log)
Fix a typo that misjudged circular reference objects. (issue #566)Fix(Log|Network)
Copy objects or arrays as standard JSON format. (issue #547)Fix(Network)
Fix Fetch
stays in pending status when window
is proxied. (issue #556)Fix(Storage)
Fix storage pannel sorting error when setting storage.defaultStorages
option. (issue #560)Chore
Add option env['no-core-js']
to disable core-js polyfill. (PR #562)Fix(Log)
Fix logs lost tracking when adding a new vConsole after destroying the old one.Fix(Network)
Fix resp.body
undefined error. (issue #531)Fix(Network)
Fix missing Request Headers when xhr.setRequestHeader
is overwritten. (issue #533)Chore
Update NPM dependencies.Fix(Core)
Fix unexpected error when init vConsole twice in short time. (issue #525)Fix(Log)
Fix bug that console.time | console.timeEnd
do not output log. (issue #523)Fix(Element)
Fix undefined is not an object
error when updating attributes. (issue #526)Fix(Network)
Do not proxy response body reader when response is done.Chore
Fix typo that Svelte is not transpiled by Babel on Windows. (PR #528)Fix(Network)
Fix CPU high load bug when response is a large string. (issue #515)Fix(Network)
Fix missing Request Headers issue in XHR. (issue #522)Fix(Network)
Fix response.size
error.Fix(Network)
Remove debugging console.log.Chore
Drop console.log
in Webpack process to ensure that no debugging logs appear in release version.Chore
Add new build command to compile files in different scenarios.Fix(Network)
Fix responseSize
error when readyState === 3
.Feat(Core)
Add new option pluginOrder
to adjust the order of built-in and custom plugins, see Public Properties & Methods.Feat(Core)
Panel will auto scroll to previous position when switching plugin panel.Feat(Network)
Add response size.Feat(Network)
Add support for transfer-encoding: chunked
, now streaming response can be recorded.Feat(Network)
Improve rendering performance of large Response data by cropping the displayed response content.Refactor(Network)
Now network records will be more accurate by using Proxy to prevent XMLHttpRequest | fetch
overwriting by other request libraries (like Axios).Feat(Log)
Add new option log.showTimestamps
, see Public Properties & Methods.Fix(Core)
Use polyfill click
event to prevent raw click event not working in some cases.Fix(style)
Fix CSS transition failure in WeChat webview by using bottom
instead of transform
.Fix(Core)
Fix error when calling vConsole method in onReady
callback. (issue #516)Refactor(Storage)
Improve robustness.Fix(Core)
Fix bug that VConsole.instance
is empty when VConsole import
as a new module.Chore(Core)
Fix type declaration errors caused by vendors.Feat(Core)
Add new static property VConsole.instance
to get the singleton instance.Feat(Core)
Add new options storage.defaultStorages
, see Public Properties & Methods.Feat(Core)
New way of using vConsole.setOption()
: setOption('log.maxLogNumber', 20)
to set maxLogNumber
field only, and setOption({ log: { maxLogNumber: 20 }})
to overwrite log
object.Feat(Core)
Deprecated some options, see below.Fix(Plugin)
Fix the bug that event renderTab
doesn't render plugin view.Fix(Storage)
Fix cookie parse error in some bad cases. (issue #508, #509)Deprecated Options:
maxLogNumber
: Use option.log.maxLogNumber
instead.maxNetworkNumber
: Use option.network.maxNetworkNumber
instead.onClearLog
: Removed.Feat(Storage)
Added "Clear" button to batch delete all storage items. (issue #499)Fix(Storage)
Fix the issue that deleting cookies fails. (issue #499)Feat(Log)
Support for submitting command input using the enter key. (issue #498)Fix(Network)
Fix init.body
parameter problem. (issue #500)Feat(Core)
Add new option vConsole.option.target
to specify custom mount target, see Public Properties & Methods. (issue #455)Feat(Log)
Add new methods: vConsole.log.log()|info()|...
, vConsole.log.clear()
, see Builtin Plugin: Properties & Methods.Feat(Network)
Add new methods: vConsole.network.add()|update()
, vConsole.network.clear()
, see Builtin Plugin: Properties & Methods.Feat(Network)
Add new option vConsole.option.maxNetworkNumber
to limit request number, see Public Properties & Methods. (issue #492)Fix(Network)
Display Request Payload for all HTTP methods, not just POST. (issue #493)Fix(Element)
Fix the infinite loop problem caused by the newly added Comment node. (issue #491)Feat(Network)
Pretty output format for JSON response. (issue #486)Fix(Style)
Avoid panel scaling with the web page When initial-scale !== 1
.Fix(Core)
Fix the issue that clicking the panel button does not work in PC mode. (issue #487)Fix(Network)
Display formatted JSON instead of [object Object]
when Query/Payload/Headers is an object or array.Fix(Network)
Avoid overwriting onreadystatechange
of XHR objects multiple times when XHR objects are reused in some cases. (issue #214)In this version, we refactored a lot of core logic, and used Svelte as the rendering engine for all views.
So there are some breaking changes, a small number of methods and properties are not forward compatible.
If you are a vConsole plugin developer, you should pay attention to these changes.
Breaking Changes:
Refactor(Core|Log|Network|Element)
Rebuild all views by using Svelte as template engine.Refactor(Core)
Remove vConsole.(tabList | activedTab | $dom)
properties.Refactor(Plugin)
Rename vConsole.showTab(pluginID)
to vConsole.showPlugin(pluginID)
.Refactor(Plugin)
Change callback option { data, onClick }
of plugin event addTopBar
: onClick
method will receive 2 arguments (which was 0 before): (event: Event, data?: any) => boolean
, which data
is the above option's data
field.Feat(Core)
Remove helper functions vConsole.tool
and vConsole.$
.Common Updates:
Feat(Log)
Support object's Symbol
keys.Feat(Log)
Support multi-level keyword hint in Log's command line input.Feat(Log)
Support string formatting %s, %d, %o
, and better %c
CSS styling formatting.Feat(Log)
Add pagination to objects or arrays to improve rendering performance, with 50 key-values per page.Feat(Network)
Add copy buttons to request attributes.Feat(Element)
Improve UX, selected node will be highlighted and applied to Expand/Collapse action.Feat(Style)
Style tags will be loaded into <head>
after vConsole initialization, and removed after destruction.Refactor(Storage)
Improve UX.Fix(Network)
Throw error when Fetch
get an error. (issue #458)Style(Log)
Add support for BigInt
and update Symbol
log style.Refactor(Style)
Lazy load style tag when vConsole init.Fix(Core)
Use this || self
as globalObject
to prevent self is not defined
error. (issue #441)Fix(Log)
Fix Cannot convert a Symbol value to a string
error when logged a Symbol
value.Fix(Log)
Now commands and output logs can be copied.Fix(Network)
Fix URIError
when decode URI fail. (issue #470)Fix(Network)
Fix potential forEach
error. (issue #471)Chore
Transform Svelte output code to ES5. (issue #468)Refactor(Core)
Add Typescript declaration to VConsole
class.Fix(Network)
Fix Cannot read property 'setAttribute' of null
error when call setOption()
before init. (PR #453 by @Zhangstring)Fix(Network)
Fix Fetch
error when iOS < 11. (PR #457 by @zimv)Chore
Generate .d.ts
declarations when built. (RP #433 by @ManiaciaChao)Chore
Remove ./dist
from Git tracking.Fix(Log)
Fix command input style. (PR #437 by @FredZeng)Fix(Storage)
Fix globalThis
error. (issue #438 #439)Chore
Fix const
let
error cause by Svelte. (PR #440 by @dellyoung)Feat(Log)
Show audio loading error log. (PR #419 by @zimv)Feat(Storage)
Rewrite Storage panel, supports add/edit/delete storage items. (PR #429 by @ManiaciaChao)Feat(Plugin)
New third-party plugin vite-plugin-vconsole. (by @vadxq)Refactor(Core)
Use Svelte as template engine. (PR #429 by @ManiaciaChao)Refactor(Core|Element)
Convert core file and Element panel to .ts
file.Fix(Log)
Fix error when print object(s) with no toJSON
method such as Vue
instance. (PR #431 by @sillyhong)Fix(Network)
Fix error when url not starts with http
. (issue #420)Fix(Network)
Fix error when using Request
as Fetch
's parameter. (PR #428 by @tatsunoneko)Fix(Network)
Display formatted key-value list when POST
a JSON string. (issue #425)Style
Wrap LESS math operations. (PR #426 by @ManiaciaChao)Chore
Fix yarn serve
error. (issue #424)Fix(Log)
Do not merge repeated logs with object(s) or array(s) into one line to avoid merging objects with the same structure but different values.Fix(Log)
Fix the issue that log filter does not take effect after selecting the log type.Fix(Network)
Fix error when url starts with //
. (PR #414 by @kooritea)Chore
Remove exclude: node_modules
option in babel-loader to be compatible with ES5. (issue #404, #407)Refactor(Log)
Convert Log & System panel to .ts
file.Feat(Log)
Show resource (image/video/link/script) loading error log. (PR #411 by @zimv)Chore
Add target: ['web', 'es5']
to Webpack to avoid compatibility issues. (issue #404)Fix(Network)
Fix error when new URL('x', undefined)
. (PR #409 by @moonkop)Feat(Storage)
Show preview value to prevent large raw value blocking rendering. (issue #300)Feat(Storage)
Add copy button and delete button.Feat(Core)
Use system theme color by default when init option theme
is empty.Refactor(Storage)
Convert Storage panel to .ts
file.Fix(Network)
Use forEach
instead of .entries()
when traversing headers
. (issue #404)Fix(Network)
Fix error when Content-Type
is empty.Fix(Network)
Fix "Invalid base URL" error. (PR #402)Feat(Log)
Print unhandledrejection
log. (PR #389 by @zimv)Feat(Network)
Support navigator.sendBeacon()
in Network panel. (PR #383 by @cola119)Feat(Network)
Display "Type" (Request Type) in "General", including xhr|fetch|ping
.Refactor(Core)
Use TypeScript. Now Network panel is conveted to .ts
file.Fix(Network)
Recover original window.fetch()
method when remove Network panel.Fix(Storage)
Fix issue that the cookie of the non-first-level domain cannot be deleted. (issue #398)Fix(Element)
Fix issue that elements are rendered as nested when attributes
or characterData
changed. (issue #399)Chore(Core)
Update to Webpack5 and update all NPM packages to the latest version.Fix(Core)
Fix invalid click caused by wrong selection
.Fix(Log)
Delete cachedLogs
when reached maxLogNumber
limit.Fix(Log)
Fix XSS risk.Chore(Babel)
Fix incorrect catch
built by babel-loader. (PR #392 by @myl0204)Fix(Network)
Fix typing error. (PR #388 by @xovel)Feat(Log)
Add ability to copy a single line of logs. (by @akai)Feat(Plugin)
New third-party plugin vconsole-vue-devtools-plugin. (by @Zippowxk)Perf(System)
Rename "System" field to "Client", and add MacOS
version.Fix(Log)
Use natural sorting to sort object and array's keys. (issue #372)Fix(Network)
Fix JSON parse error when contentType
is text/html
. (by @zimv)Fix(Network)
Fix disableLogScrolling
not working in Network panel. (issue #282, #379)Feat(Core)
Add setSwitchPosition(x, y)
method to update the position of switch button, see Public Properties & Methods for more details.Perf(Core)
Add Symbol
polyfill. (issue #361)Fix(Core)
Update theme style after setOption()
.Fix(Core)
Remove transitionEnd
to prevent compatibility issues. (issue #364)Fix(Network)
Fix fetch
optional parameter init
. (issue #363, #365)Fix(Network)
Fix XSS risks.Feat(Core)
Add darkmode theme, see vConsole.option.theme
in Public Properties & Methods. (PR #307 by @progrape)Feat(Core)
Add safe area to switch button. (issue #353)Feat(Log)
Auto move input cursor to the bracket after autocomplete command. (issue #293)Feat(System)
Add Location
info to System tab. (issue #343)Feat(Network)
Add fetch
log in Network tab. (by @weiqian93)Feat(Network)
Add Request Headers to Network tab.Feat(Network)
Use short URL and display parameters in Network tab. (issue #291)Feat(Plugin)
New third-party plugin vconsole-stats-plugin. (by @smackgg)Fix(Core)
The position of the switch button will be reset by mistake when clicked.Fix(Core)
Fix document.documentElement.offsetHeight|offsetWidth
is unreliable in newer browsers. (PR #314 by @littlee)Fix(Core)
Prevent dispatchEvent for disabled or readOnly elements. (PR #314 by @norux)Fix(Core)
Fix nonce searching problem. (by @sunderls)Fix(Core)
Fix security issues. (#345 by @QiAnXinCodeSafe)Fix(Core)
Prevent "webkitStorageInfo deprecation" warning.Perf(Core)
Remove Symbol
, Array.from
polyfill. (issue #325, #275)Perf(Core)
Show all enumerable and unenumerable properties. (issue #327)Chore
Update Webpack DevServer option. (by @QinZhen001)Feat(Log)
Add %c
log format to support custom log style, see Tutorial for more details.Feat(Plugin)
Add VConsole.VConsoleLogPlugin
(VConsole.VConsole*
plugins etc.) to VConsole
class.Fix(Core)
Fix a few minor issues. (#267 by @Molunerfinn, #272 by @domom)Fix(Storage)
Fix remove cookie fail when it is set path=/ or top domain. (#264 by @qianxinfeng)Perf(Core)
Display vConsole on window DOMContentLoaded
instead of window load
.Feat(Core)
Add TypeScript definition file. (by @jas0ncn)Fix(Log)
Avoid scrolling to bottom when away from bottom edge. (by @ele828)Fix(Core)
Fix switch button position issue. (by @rexschuang)Fix(Core)
Fix a few minor issues. (by @stenders)Feat(Log)
Add the ability to collapse the same log.Fix(Log)
Fix issue which formatted log (like console.log('[foo]', 'bar')
) will not display in Log tab.Feat
Add console command prompt. (by @65147400)Feat
Add SessionStorage support in Storage tab. (by @hkc452)Fix
Fix JSON.stringify
function which was incorrectly rewritten.Fix
Fix logNumber
bug which was not reset when clear logs. (by @liuyuekeng)Fix
Fix unencoded HTML tag in Network tab. (by @mokang)Fix
Fix possible crash when decode content in Storage tab. (by @wolfsilver)Fix
Fix CSP buy cause by nonce
attribute. (by @scotthuang)Perf
Add bottom safe area to adapt to full screen such as iPhone X. (by @dingyi1993)Feat
Support console.time()
and console.timeEnd()
.Feat
Add disableLogScrolling
(in vConsole.option
).Fix
Fix setOption()
error.Fix
Fix cookies' value wrong display.Fix
Fix "Uncaught InvalidStateError". (by @fireyy)Feat
Add vConsole.showSwitch()
and vConsole.hideSwitch()
methods, see Public Properties & Methods.Feat
Add onReady
and onClearLog
callback function to vConsole.option
.Feat
Auto clear logs when console.clear()
is called.Fix
Fix \r
error when build in Windows.Fix
Fix Symbol
error in iOS8 or other old OS.Basic:
Feat
Require manual init vConsole var vConsole = new VConsole(option)
.Feat
Add configuaration vConsole.option
, which can be set when new VConsole
or setOption(key, value)
.Feat
Support for custom loading of default built-in plugins by using defaultPlugins
in the above option.Feat
Add setOption(key, value)
method.Perf
Support CSP rule unsafe-eval
and unsafe-inline
.Perf
Optimize font-size
when initial-scale < 1
.Log plugin:
Feat
Support maxLogNumber
option to limit maximum log number.Fix
Fix the crash caused by printing large objects.Perf
Only the logs written as console.log('[system]', xxx)
will be shown in System tab, so console.log('[system] xxx')
will be shown in default log tab.Network plugin:
Feat
Support Query String Parameters
and Form Data
.Perf
Auto format JSON response.Fix
Fix bug that XHR status is always "Pending" when using 3rd HTTP libraries.Plugins:
Feat
Plugins can get vConsole instance by this.vConsole
on/after init
event is called.Feat
Add updateOption
event to detect vConsole.option
changes.Feat
Add Element tab as a built-in plugin.Feat
Add Storage tab as a built-in plugin.Fix
Catch errors when eval custom commands in Log tab.Fix
Fix scrollHeight
error in some cases.Fix
Fix flex layout in iOS 8 devices.Perf
Performance enhancement.Feat
Add vConsole.removePlugin()
method, see Public Properties & Methods.Feat
Add remove
plugin event, see Plugin: Event List.Perf
Disable page scrolling while vConsole is scrolling.Fix
Fix window.onerror()
typo.Feat
Add addTopBar
plugin event, see Plugin: Event List.Feat
Add log type filter to Log & System tab.Perf
Log list will not automatically scroll to bottom while printing new logs if the viewport is not at the end of list.Perf
Fix UI bugs.Fix
Fix XSS issue when print object logs.Fix
Switch button will not be positioned out of edges in some special cases.Fix
Replace custom tap
event (in V2.3.0) with click
event (still support fast response) to prevent conflicts.Perf
Remove now
item and add navigationStart
time in System tab.Feat
Objects or Arrays can be expended layer by layer.Feat
All object's properties, including private properties, can be enumerable now.Perf
Support tap
event within vConsole's DOM container to speed up click
event.Perf
Add complete performance timing log to System tab.Feat
Add third-party plugin list to README.Feat
Add vConsole.version
property.Feat
Add xhr._noVConsole
property to XMLHttpRequest
objects to customize whether a XHR should display in Network tab.Feat
Add vConsole.tool
& vConsole.$
helper functions, see Helper Functions.Feat
Public properties & methods of vConsole are available, see Public Properties & Methods.Fix
Fix issue that error
in window.onerror()
may be undefined.Fix
Fix error that xhr.status
may be unavailable when xhr.readyState < 4
.Fix
Fix error that vConsole may not work at X5 browser engine.Fix
Fix error that localStorage
is null in some kind of devices.Fix
Fix boolean display error in Log tab.Perf
Improve UI in Android.Feat
Rebuild completely, support custom plugin, see Plugin: Getting Started.Feat
Support execute JS command line in Log tab.Feat
Support circular structure object in Log and System tab.Feat
Support viewing request headers and response in Network tab.Perf
Switch button will not be dragged out of screen.Perf
Auto print User Agent in System tab.Perf
Show log's time in Log and System tab.Fix
Fix issue that getDate() returns a wrong date.Fix
Fix issue that sync AJAX becomes async AJAX.Feat
Support Drag and Drop switch button.Fix
Fix initialization failure when loaded asynchronously.Fix
Fix data lost when sending a POST request.Feat
Add network panel.Feat
Deprecate vConsole.ready()
method.Perf
Display formatted Object & Array variable.Perf
Add English README and CHANGELOG.Perf
Improve UI.Feat
Support window.onerror()
to catch exceptions and errors.Feat
Support [default|system|...]
string to print logs to specific panel.Fix
Fix webpack compilation.Fix
Fix XSS when printing HTML string.Fix
Fix the main
path in package.json
.Perf
Update demo pages.