W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在真機(jī)上,如果想要查看 console API 輸出的日志內(nèi)容和額外的調(diào)試信息,需要在點(diǎn)擊屏幕右上角的按鈕打開的菜單里選擇「打開調(diào)試」。此時(shí)小程序/小游戲會(huì)退出,重新打開后會(huì)右下角會(huì)出現(xiàn)一個(gè) vConsole 按鈕。點(diǎn)擊 vConsole 按鈕可以打開日志面板。
小程序和小游戲的 vConsole 展示內(nèi)容會(huì)有一定差別,下圖左邊是小程序 vConsole,右邊是小游戲 vConsole
由于實(shí)現(xiàn)機(jī)制的限制,開發(fā)者調(diào)用 console API 打印的日志內(nèi)容,是轉(zhuǎn)換成 JSON 字符串后傳輸給 vConsole 的,導(dǎo)致 vConsole 中展示的內(nèi)容會(huì)有一些限制:
let a = {}
a.b = a
console.log(a) // 2.3.2 以下版本,會(huì)打印 `An object width circular reference can't be logged`
針對(duì)上述問題,小程序/小游戲在使用 vConsole 時(shí)做了一些處理
const circular = { x: {}, c: {} }
circular.x = [{ promise: Promise.resolve() }]
circular.a = circular
circular.c.x0 = circular.x[0]
console.log(circular)
// "{a: '<Circular: @>', c: {x0: '<Circular: @.x[0]>'}, x: [{promise: '<Promise>'}]}"
注:盡量避免在非調(diào)試情景下打印結(jié)構(gòu)過于復(fù)雜或內(nèi)容過長(zhǎng)的日志內(nèi)容(如游戲引擎中的精靈或材質(zhì)對(duì)象等),可能會(huì)帶來額外耗時(shí)。為了防止異常發(fā)生,日志內(nèi)容超過一定長(zhǎng)度會(huì)被替換為<LOG_EXCEED_MAX_LENGTH>,此時(shí)需要開發(fā)者裁剪日志內(nèi)容。
目前只在 iOS 6.7.2 及以上版本支持
小程序/小游戲在打包時(shí),會(huì)將所有 js 代碼打包成一個(gè)文件,為了便于開發(fā)者在手機(jī)上調(diào)試時(shí)定位錯(cuò)誤位置,小程序/小游戲提供了 Source Map 支持。
在開發(fā)者工具中開啟 ES6 轉(zhuǎn) ES5、代碼壓縮時(shí),會(huì)生成 Source Map 的 .map 文件。開發(fā)版小程序中,基礎(chǔ)庫(kù)會(huì)使用代碼包中的 .map 文件,對(duì) vConsole 中展示的錯(cuò)誤信息堆棧進(jìn)行重新映射(只對(duì)開發(fā)者代碼文件進(jìn)行)。
如果使用外部的編譯腳本對(duì)源文件進(jìn)行處理,只需將對(duì)應(yīng)生成的 Source Map 文件放置在源文件的相同目錄下
如:
pages/index.js
pages/index.js.map
app.js
app.js.map
開發(fā)者工具會(huì)讀取、解析 Source Map 文件,并進(jìn)行將其上傳
后續(xù)可以在小程序后臺(tái)的運(yùn)營(yíng)中心可以利用上傳的 Source Map 文件進(jìn)行錯(cuò)誤分析
真機(jī)遠(yuǎn)程調(diào)試功能可以實(shí)現(xiàn)直接利用開發(fā)者工具,通過網(wǎng)絡(luò)連接,對(duì)手機(jī)上運(yùn)行的小程序進(jìn)行調(diào)試,幫助開發(fā)者更好的定位和查找在手機(jī)上出現(xiàn)的問題。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: