国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼

這篇具有很好參考價值的文章主要介紹了5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言

有時出現(xiàn)的線上bug在測試環(huán)境死活都不能復(fù)現(xiàn),靠review代碼猜測bug出現(xiàn)的原因,然后盲改代碼直接在線上測試明顯不靠譜。這時我們就需要在生產(chǎn)環(huán)境中debug代碼,快速找到bug的原因,然后將鍋丟出去。

5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼

生產(chǎn)環(huán)境的代碼一般都是關(guān)閉source map和經(jīng)過混淆的,那么如何進行debug代碼呢?我一般都是使用這兩種方式debug線上代碼:“通過console找到源代碼打斷點”和“通過network面板的Initiator找到源代碼打斷點”。

通過console找到源代碼打斷點

打開瀏覽器控制臺的console面板,在上面找到由bug導(dǎo)致拋出的報錯信息或者在代碼里面通過console.log打的日志。然后點擊最右邊的文件名稱跳轉(zhuǎn)到具體的源碼位置,直接在代碼中打上斷點就可以debug代碼了。

5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼

如果點擊右邊的文件名后出現(xiàn)這種404報錯的情況。
could-not-load-content-for-webpack://***-(fetch-through-target-failed:-unsupported-url-scheme;-fallback:-http-error:-status-code-404,-net:: ERR_UNKNOWN_URL_SCHEME)

只需要點擊控制臺右邊倒數(shù)第三個圖標(biāo)setting(設(shè)置),將preferences(偏好設(shè)置)中的Enable JavaScript source maps(啟用 JavaScript 源代碼映射)取消勾選后再重新點console最右邊的文件名稱即可。

5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼

這種方式很簡單就可以找到源代碼,但是有的bug是沒有報錯信息的,而且我們也不可能到處都給代碼加上console.log,所以這種方式有一定的局限性。

通過network面板的Initiator找到源代碼打斷點

將鼠標(biāo)放到請求的Initiator(啟動器)后,就會顯示當(dāng)前請求完整的調(diào)用鏈中的方法和函數(shù)。假如請求是由A函數(shù)中發(fā)起的,B函數(shù)調(diào)用了A函數(shù),C函數(shù)又調(diào)用了B函數(shù)。那么這種情況中Initiator就會按照順序依次將A、B、C函數(shù)都列出來。

了解了Initiator的作用思路就清晰了,我們只需要找到離bug最近的一個接口請求,然后從調(diào)用鏈中找到我們需要的方法或者函數(shù)就可以了。

這時有的小伙伴又會說了,線上的代碼都是經(jīng)過混淆的,原本代碼中的函數(shù)和變量經(jīng)過混淆后已經(jīng)都不是原本的名字了,那么我們怎么知道調(diào)用棧中哪個是我們想要找的函數(shù)呢?

確實函數(shù)和變量名稱經(jīng)過混淆后已經(jīng)變得面目全非了,但是對象中的方法和屬性名稱是不會被修改的,還是會保留原本的名字。比如我們有一個對象名字叫user,user中有個名叫dance的方法。經(jīng)過混淆后user對象的名字可能已經(jīng)變成了U,但是dance方法還是叫原本的名字,不會被修改。利用這一點我們可以在調(diào)用棧中找到我們熟悉的對象方法名稱就可以很快的定位到源代碼。

舉個例子,我們當(dāng)前有個service/common.js文件

import axios from "axios";

const urls = {
  messageList: "http://127.0.0.1:3000/api/getMessageList",
};

const methods = {
  getMessageList() {
    return axios({
      method: "get",
      url: urls.messageList,
    });
  },
};

export default {
  urls,
  methods,
};

業(yè)務(wù)組件中這樣調(diào)用

import CommonService from "@/service/common.js";

async function initData() {
  const res = await CommonService.methods.getMessageList();
  const formatData: Array<Message> = handleFormatData(res.data.list);
  messageList.value = formatData;
}

Initiator調(diào)用棧中就可以很容易的找到getMessageList方法,并且我們知道getMessageList方法是我們的initData調(diào)用的。那么在調(diào)用棧中getMessageList的上一個就是我們想要找的源代碼位置,點擊文件名稱就可以跳轉(zhuǎn)到目標(biāo)源代碼具體的位置。

5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼

5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼

如果跳轉(zhuǎn)到源代碼后代碼是被壓縮的狀態(tài),點左下角的花括號將代碼格式化。找到具體的定位后,經(jīng)過比對其實混淆后的代碼和源代碼其實差別不是特別大,debug代碼還是很容易的。

這時有的小伙伴又會問了,假如我們出現(xiàn)bug的地方?jīng)]有接口請求怎么辦呢?

這種情況也可以利用Initiator調(diào)用棧找到對應(yīng)的源代碼js文件,然后搜索你知道的屬性和方法名字,因為屬性和方法名稱在混淆的過程中是不會被重寫的。這樣也可以找到源代碼的位置。

總結(jié)

這篇文章主要介紹了兩種在線上debug源碼的方法。第一種方法是在控制臺找到console輸出,點擊console右邊的文件名稱跳轉(zhuǎn)到源碼進行debug。第二種方式通過請求的Initiator調(diào)用棧,找到源代碼中對應(yīng)的方法,點擊文件名稱也可以跳轉(zhuǎn)到源代碼具體的位置。

如果我的文章對你有點幫助,歡迎關(guān)注公眾號:【歐陽碼農(nóng)】,文章在公眾號首發(fā)。你的支持就是我創(chuàng)作的最大動力,感謝感謝!文章來源地址http://www.zghlxwxcb.cn/news/detail-804897.html

到了這里,關(guān)于5分鐘教會你如何在生產(chǎn)環(huán)境debug代碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 【Linux】軟件安裝(三分鐘教會你如何在linux下安裝軟件)

    【Linux】軟件安裝(三分鐘教會你如何在linux下安裝軟件)

    ??? ??????? 歡迎來到小林的博客??! ?????????博客主頁:??小林愛敲代碼 ?????????博客專欄:??Linux之路 ?????????社區(qū):??進步學(xué)堂 我們在使用windows系統(tǒng)的時候可以安裝各種軟件。那么Linux中能不能安裝軟件呢?答案當(dāng)然是可以

    2024年02月04日
    瀏覽(23)
  • Linux 中某個目錄中的文件數(shù)如何查看?這篇教程分分鐘教會你!

    Linux 中某個目錄中的文件數(shù)如何查看?這篇教程分分鐘教會你!

    如果一個目錄中文件數(shù)不是很多,那就可以一眼看出其中有多少個文件。但是如果計算子目錄在內(nèi)的文件數(shù)呢?或者如果文件數(shù)量很多,比如幾百上千個,那么怎么確切地知道該目錄下的文件數(shù)呢? 今天我們總結(jié)一下查看 Linux 中目錄下文件數(shù)量的方法。 最簡單的方法是使用

    2023年04月13日
    瀏覽(28)
  • webpack與vue-cli合并配置,打包生產(chǎn)環(huán)境代碼時如何刪除所有的console.log、代碼注釋和debugger

    webpack與vue-cli合并配置,打包生產(chǎn)環(huán)境代碼時如何刪除所有的console.log、代碼注釋和debugger

    本文基于vue-cli 5.0.0,webpack 5.0,TerserWebpackPlugin 最近公司項目開發(fā)上線后,發(fā)現(xiàn)控制臺有很多當(dāng)時測試時打印的信息。但是如果手動刪除然后打包的話工作量太大,而且不利于以后的維護和debugger。所有必須通過webpack打包時自動幫我們刪除console和注釋。 第一步上網(wǎng)找到webpack關(guān)于

    2024年02月04日
    瀏覽(93)
  • ChatGPT 從入門到精通12:教你如何用AI 五分鐘做出一個高大上的PPT

    ChatGPT 從入門到精通12:教你如何用AI 五分鐘做出一個高大上的PPT

    ChatGPT狂飆160天,世界已經(jīng)不是之前的樣子。 新建了人工智能中文站https://ai.weoknow.com 每天給大家更新可用的國內(nèi)可用chatGPT資源 這是《ChatGPT ,從入門到精通》第12篇基礎(chǔ)教程,今天將向大家介紹如何利用 ChatGPT 和其他 AI 工具制作 PPT。 「一、制作 PPT 的煩惱」 俗話說得好,工

    2024年02月13日
    瀏覽(28)
  • au怎么提取人聲?一分鐘教會你!

    au怎么提取人聲?一分鐘教會你!

    提取人聲技術(shù)可以幫助人們獲得更清晰、純凈的聲音,以滿足不同的需求,如音頻處理、字幕制作和學(xué)習(xí)外語等。那么如何利用AU提取人聲呢?下面介紹了三種相關(guān)的方法。 一、使用AU軟件 1 、打開AU軟件,按【ctrl+o】,選擇音頻文件進行導(dǎo)入。 2 、點擊【效果】,點擊【立體

    2024年02月06日
    瀏覽(29)
  • 一分鐘教會你ai繪畫怎么操作

    一分鐘教會你ai繪畫怎么操作

    嘿,朋友們!今天我想和大家聊一聊人工智能繪畫。你們有沒有聽說過這項技術(shù)?簡單來說,就是用計算機程序來創(chuàng)作藝術(shù)作品,比如繪畫、音樂等等。最近這種技術(shù)越來越受到人們的關(guān)注,也有很多網(wǎng)站和應(yīng)用程序開始提供這種功能。但是,你們知道怎么使用這種技術(shù)嗎?

    2024年02月09日
    瀏覽(20)
  • 【ETL工具】本地環(huán)境IDEA遠程DEBUG調(diào)試Flume代碼

    【ETL工具】本地環(huán)境IDEA遠程DEBUG調(diào)試Flume代碼

    ???????????????? 感謝點贊和關(guān)注 ,每天進步一點點!加油! ???????????????? 目錄 ?? 個人主頁——??個人主頁 ????? 一、問題說明 二、操作步驟 2.1 idea創(chuàng)建遠程調(diào)試 Flume 自定義 HDFS-Sink,遠程服務(wù)器進行部署flume打包好后的代碼,本地監(jiān)控遠程flume程序

    2024年02月08日
    瀏覽(26)
  • 一周工作5分鐘完成!新版文心一言實測:秒秒鐘出廣告片,幾句話搞定代碼,辦公科研生產(chǎn)力直接ProMax...

    一周工作5分鐘完成!新版文心一言實測:秒秒鐘出廣告片,幾句話搞定代碼,辦公科研生產(chǎn)力直接ProMax...

    金磊 發(fā)自 凹非寺 量子位 | 公眾號 QbitAI 家人們,百度 文心一言 的插件,現(xiàn)在可以 聯(lián)動 著用了—— 只要 幾十秒 ,立馬給你生成一個專業(yè)廣告大片! 話不多說,直接先來看一下成品: 不信? 沒關(guān)系,我們現(xiàn)在就來手把手地 實操演示 一下。 首先就是要把要用到的文心一言

    2024年02月11日
    瀏覽(20)
  • 如何用python做交互式界面?五分鐘教會你。

    如何用python做交互式界面?五分鐘教會你。

    之前寫了一個用Python制作的登陸界面的文章,這次教大家實現(xiàn)一個簡單的注冊界面,跟登陸相比,注冊界面新增了一個上傳頭像的功能,以及將注冊信息保存到本地txt文件中的功能,最終實現(xiàn)的效果是這樣的 ? 在導(dǎo)入必要的庫之后,我們先創(chuàng)建一個寬度為350,高度為220的窗口

    2024年02月05日
    瀏覽(24)
  • IntelliJ IDEA安裝教程,三分鐘手把手教會,非常簡單!

    IntelliJ IDEA安裝教程,三分鐘手把手教會,非常簡單!

    鏈接:JDK安裝教程 1、進入官網(wǎng) 官網(wǎng)地址:https://www.jetbrains.com/ ? 2、點擊【Developer Tools】開發(fā)者工具,選擇【IntelliJ IDEA】點擊跳轉(zhuǎn)。 ? 3、來到IntelliJ IDEA界面,點擊【Download】跳轉(zhuǎn)到下載頁面 ? 4、然后你會看見旗艦版和社區(qū)版兩個版本,旗艦版的組件很全面,但是要錢(

    2024年03月14日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包