精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

第一次發現 console.log 這么沒用!我要改造它!

開發 前端
最近在幫助團隊中一位前端開發定位問題時,發現他是通過控制臺的打印,也就是console.log去打印,然后通過打印的東西,去看是否達到預期的結果。

背景

最近在幫助團隊中一位前端開發定位問題時,發現他是通過控制臺的打印,也就是console.log去打印,然后通過打印的東西,去看是否達到預期的結果,比如他在Login/Index.vue中寫了這么一段代碼:

let name = null
// ...coding 對name進行處理

// 最后輸出 name
console.log('我是Index.vue', name)

這個時候肯定是馬上打開網頁,查看控制臺,看看 name 這個變量的值是否達到預期,但是一看控制臺,懵逼了(下面是例子,但是真實項目中超級多的打印)

為什么懵逼呢?因為項目中很多個文件都是這么打印的。。。這時候就出現兩個問題了:

  • 很多個文件都命名為Index.vue怎么知道哪個打印是我想看的那個?
  • 我打印的是 name,怎么確定哪個打印的是name呢?

這個時候,怎么解決呢?一個一個點進源碼里看嗎?

那可太累了,只有兩個文件還好,如果是十個,二十個呢?那不是累死了!!!

所以很多人第一選擇肯定是回去改代碼,讓代碼更加準確地表達:

let name = null
// ...coding 對name進行處理

// 最后輸出 name
console.log('我是/Login/Index.vue', 
            `name = ${name}`)

這時候我們就可以準確地看到我們想看到的那個文件的輸出

圖片

思考

考慮到現在項目中已經有很多這樣的console.log了,且因為以前的人不注意,導致了輸出的東西表達的意義不是很明確,所以代碼的可維護性大大降低。

console.log其實也是開發階段很重要的一部分。

剛剛在 Login/Index.vue 那個例子中,我們最后是通過修改輸出,進而準確地看到我們想看的文件輸出,但是這樣還是得人為去改,我們能不能做到自動呢?比如有兩個Index.vue:

// login/Index.vue
const name = 'sunshine_lin'
const age = 20
console.log(name, age)

// team/Index.vue
const name = 'sunshine_lin'
const age = 20
const gender = '男'
console.log(name, age, gender)

我希望是控制臺能自動輸出這樣:

這樣能通過文件路徑看到具體是哪一個文件輸出的信息,并且都能看到每一個輸出值所對應的變量名。

所以我開發了兩個插件來實現這個功能(非常感謝暴走老七大佬,我好多代碼都是學他的~)

  • vite-perfect-console-plugin: 適用于 vite 項目
  • babel-plugin-perfect-console: 適用于 webpack 項目

源碼鏈接: https://github.com/sanxin-lin/clear-console-plugins

使用方法很簡單:

// vite 項目
npm i vite-perfect-console-plugin
// vite.config.ts
import VitePerfectConsolePlugin from 'vite-perfect-console-plugin'

defineConfig({
  plugins: [
    //...plugins
    // tip 默認是 ????????????
    VitePerfectConsolePlugin({ tip: '????????????' }),
  ],
})

// webpack 項目
npm i babel-plugin-perfect-console
// babel.config.js
module.exports = {
  plugins: [
    // ...plugins
    [
      'perfect-console',
      // tip 默認是 ????????????
      {
        tip: '????????????',
      },
    ],
  ],
}

接下來就說說開發這兩個插件的思路吧~

想做什么?

其實你項目中寫的代碼,最后都會打成產物,那我們只需要在打包成產物的某一個時間點,去獲取到這些console.log,并補上我們想輸出的東西就行了,我們想補上的信息有:

  • 文件的路徑
  • 輸出值對應的變量

抽象語法樹(AST)

說到獲取代碼節點,進行修改,第一時間肯定是想到抽象語法樹,也就是AST,我們到https://astexplorer.net/這個網站上,輸入我們剛剛寫的那些代碼,我們可以看到console.log會被解析成有辨識度的代碼節點,所以我們也可以遍歷這個AST并拿到我們想要的代碼節點:

思路

思路就是:

  • 把代碼轉換成抽象語法樹
  • 遍歷抽象語法樹,查到每一個console.log節點,并塞入我們想要輸出的內容
  • 將抽象語法樹轉換成代碼

這三步要用到 babel 的一些方法:

  • parse:將代碼轉成AST
  • generate:將AST轉成代碼

Webpack和Vite的區別

Webpack 和 Vite 中去開發這個插件,是不同的,但是都是要用到 babel,只不過時機不同

  • Webpack:可以直接開發一個Babel插件,就可以在Webpack打包的過程中去加上我們想要的打印內容
  • Vite:需要在transform的鉤子函數中,去引入babel手動進行轉換代碼,進而加上我們想要的打印內容

代碼 + 注釋說明

非常感謝暴走老七大佬,我好多代碼都是學他的~

本文章源碼鏈接: https://github.com/sanxin-lin/clear-console-plugins

Vite插件

Webpack Babel 插件

責任編輯:趙寧寧 來源: 前端之神
相關推薦

2024-08-08 08:50:21

標簽頁portTab

2024-04-15 00:00:00

console語法樹AST

2011-07-21 21:01:37

諾基亞塞班蘋果

2021-02-05 08:35:21

私活程序員

2021-03-17 08:53:21

JavaScript開發代碼

2017-03-22 15:38:28

代碼架構Java

2014-05-19 10:16:56

WinJS開源TypeScript

2023-09-11 00:14:46

后端團隊項目

2022-08-15 08:16:56

shiroWeb認證

2018-01-26 10:42:44

前端JavascriptConsole對象

2012-04-13 10:11:58

Windows 8泄露

2022-03-16 14:59:28

打包debian模板文件

2018-05-17 10:57:38

數據科學實習學習

2022-12-21 07:52:50

高并發架構擴容庫

2020-03-12 18:56:06

MySQL主從復制數據庫

2022-06-21 09:26:28

開源項目PR

2015-10-26 16:38:17

2024-04-17 08:42:15

Go語言分布式鎖

2021-07-16 08:26:18

折疊表達式參數

2024-10-30 12:17:51

點贊
收藏

51CTO技術棧公眾號

激情小视频在线观看| 国产成人啪精品午夜在线观看| 123成人网| 18成人在线观看| 成人免费看片网站| 国产精品21p| 日韩激情在线| 精品欧美一区二区在线观看| 国产黄色一级网站| 亚洲s色大片| 不卡的av网站| 国产欧美久久久久久| 国产精品99精品无码视| 精品日韩在线| 精品国精品国产尤物美女| 丰满少妇被猛烈进入高清播放| 日本在线免费| 久久亚洲精华国产精华液| 成人h视频在线观看播放| 国产五月天婷婷| 97精品在线| 亚洲欧美一区二区三区久久| 日本泡妞xxxx免费视频软件| 91精品影视| 亚洲国产一区二区三区| 影音欧美亚洲| 你懂的在线看| 成人av高清在线| 91美女片黄在线观看游戏| 午夜精品一区二| 影音先锋亚洲电影| 蜜月aⅴ免费一区二区三区| 一区二区三区四区免费| 成人在线视频中文字幕| 欧美久久久久中文字幕| 精品免费国产一区二区| 99re6在线精品视频免费播放| 中文字幕一区二区三区精华液| 欧美日韩亚洲免费| 天堂在线资源8| 高清成人在线观看| 51国产成人精品午夜福中文下载| 中文字幕人妻一区二区三区视频| 性8sex亚洲区入口| 97不卡在线视频| 国产精品7777| 在线精品亚洲| 久久久亚洲欧洲日产国码aⅴ| 成人免费黄色小视频| 国产精品久久久久久久久妇女| 一区二区成人av| 欧美做受高潮6| 沈樵精品国产成av片| 精品无码久久久久久国产| 小毛片在线观看| 久久夜色电影| 精品丝袜一区二区三区| 成人影视免费观看| 无码少妇一区二区三区| 日韩精品中文字幕有码专区| av无码一区二区三区| 久久99精品国产自在现线| 亚洲激情久久久| 亚洲精品乱码久久久久久久| 羞羞答答一区二区| 亚洲欧美在线磁力| 全黄一级裸体片| 精品日韩一区| 日韩视频精品在线| 麻豆精品一区二区三区视频| 亚洲手机视频| 555www成人网| 国产精品无码粉嫩小泬| 老司机一区二区| 91久久久久久久久| 草逼视频免费看| 波多野洁衣一区| 欧美日韩三区四区| 成年人在线视频免费观看| 国产精品欧美久久久久无广告| 在线视频不卡一区二区| 中中文字幕av在线| 亚洲成人动漫在线观看| 欧美综合在线观看视频| 五月天色综合| 精品国产亚洲在线| 亚洲乱码国产乱码精品精大量| 国语产色综合| 欧美日韩国产成人在线观看| a v视频在线观看| 蜜臀久久久久久久| 操人视频欧美| 黄网在线免费| 亚洲精品写真福利| 亚洲欧洲日产国码无码久久99 | 欧美老少配视频| 日本三级视频在线| 美国一区二区三区在线播放 | 国产福利视频一区二区| ,亚洲人成毛片在线播放| 国产白丝网站精品污在线入口| 蜜桃日韩视频| 2024短剧网剧在线观看| 色综合一区二区| 奇米777在线视频| 偷拍亚洲色图| 欧美日韩高清区| 一区二区视频播放| 97久久超碰国产精品| 中文字幕精品一区日韩| 三妻四妾完整版在线观看电视剧| 在线不卡欧美精品一区二区三区| 亚洲国产精品自拍视频| 你懂的亚洲视频| 国产精品视频99| 青青青草原在线| 亚洲一区中文日韩| 五月婷婷之婷婷| 欧美**vk| 亚洲18私人小影院| 亚洲AV无码精品国产| 亚洲国产成人私人影院tom| 日本中文字幕亚洲| 电影一区中文字幕| 一本一道久久a久久精品逆3p| 日韩欧美一区二区一幕| 国产精品自在在线| 国产精品波多野结衣| 成人国产精品入口免费视频| 亚洲精品一区二三区不卡| 国产一卡二卡在线播放| 国产主播一区二区三区| 亚洲精品免费在线看| 在线观看欧美日韩电影| 亚洲国产日韩欧美综合久久| 欧美丰满艳妇bbwbbw| 九九精品视频在线看| 日本视频一区在线观看| www.精品| 国产亚洲精品美女久久久久| 久久久久久久久久影院| 成人免费视频网站在线观看| 国产精品久久久久久久久电影网| av国产精品| 播播国产欧美激情| 91精品在线视频观看| 国产精品毛片久久久久久| 日韩爱爱小视频| 欧美成人milf| 成人精品在线观看| 成人在线app| 日韩三级在线观看| 麻豆亚洲av熟女国产一区二 | 91免费版黄色| 中文字幕免费高清电视剧网站在线观看| 欧美日本国产一区| 久久99久久99精品免费看小说| 久久99久久久欧美国产| 天堂v在线视频| 日韩精品一区二区三区中文| 欧美黑人一区二区三区| 日韩中文字幕综合| 亚洲不卡一区二区三区| 亚洲黄色在线网站| 天堂精品中文字幕在线| 婷婷四房综合激情五月| 永久免费观看精品视频| 欧美大成色www永久网站婷| 亚洲成a人片77777精品| 天天影视色香欲综合网老头| 人人妻人人藻人人爽欧美一区| 久久久天天操| 一区二区不卡视频| 欧美高清hd| 午夜精品视频在线| 激情小视频在线| 欧美剧情电影在线观看完整版免费励志电影| 四虎精品免费视频| 成人免费高清视频在线观看| 国产亚洲精品网站| 大胆日韩av| 99porn视频在线| 午夜影视一区二区三区| 中文字幕自拍vr一区二区三区| 精品国精品国产自在久不卡| 婷婷成人激情在线网| 亚洲av熟女国产一区二区性色| 精品无码三级在线观看视频| 免费看欧美黑人毛片| 精品国产a一区二区三区v免费| 国产主播喷水一区二区| 97超碰免费在线| www.日韩.com| 天天操天天插天天射| 欧美熟乱第一页| 日本a在线观看| 中文av一区特黄| fc2成人免费视频| 日本免费新一区视频| 成人午夜免费在线视频| 国产一区二区三区探花| 99在线高清视频在线播放| 日本一区二区电影| 国产综合在线看| 免费av在线播放| 亚洲免费中文字幕| 不卡av中文字幕| 欧美日韩一级黄| 国产精品男女视频| 亚洲男帅同性gay1069| 香港三日本8a三级少妇三级99| 久久精品国产99久久6| 自慰无码一区二区三区| 亚洲最大av| 视频一区不卡| 亚洲精品小区久久久久久| 99re国产视频| 国产日韩欧美中文在线| 国产精品露脸av在线| 密臀av在线播放| 欧美成人在线影院| 日韩在线资源| 中文字幕不卡在线视频极品| 午夜视频www| 精品日韩欧美一区二区| 国产精品一区二区人人爽| 欧美伊人久久久久久午夜久久久久| 1级黄色大片儿| 亚洲精品成人少妇| 中国毛片直接看| 国产精品二三区| 国产精品久久久久久成人| 成人污污www网站免费丝瓜| 青青草国产成人99久久| 亚洲在线观看视频| 四虎地址8848精品| 国产极品精品在线观看| 午夜伦理福利在线| 91国内精品久久| 第一福利在线视频| 韩国美女主播一区| 久久免费电影| 欧美激情一区二区三区在线视频观看 | 激情小说网站亚洲综合网| 深夜激情久久| 99免费在线观看视频| 欧美午夜网站| 99视频在线播放| 99久久婷婷国产综合精品青牛牛| 91青青草免费观看| 亚洲精品黑牛一区二区三区| 91牛牛免费视频| 美女国产精品久久久| 91成人在线看| 久久午夜影院| 欧美日本韩国一区二区三区| 蜜桃视频欧美| 视频一区视频二区视频| 久久国产综合| 色爽爽爽爽爽爽爽爽| 亚洲无线一线二线三线区别av| 国产美女永久无遮挡| 一区二区国产在线观看| 日韩精品一区二区三区久久| 久久久久久久尹人综合网亚洲| 青青在线视频免费| 免费观看在线综合色| 日韩av自拍偷拍| 床上的激情91.| 亚洲综合网在线观看| 国产欧美日韩三级| 中文字幕无码日韩专区免费 | 国产成人在线免费| 亚洲啪av永久无码精品放毛片 | 二区三区四区视频| 一二三四社区欧美黄| 青青国产在线观看| 欧美日韩一区二区欧美激情| 亚洲国产精品久久久久久久| 日韩精品极品在线观看播放免费视频| 黄色小视频在线观看| 精品国产视频在线| 成全电影大全在线观看| 日韩av123| 日本高清久久| 欧美一区二区三区在线播放| 久久久久久久久久久妇女| 阿v天堂2017| 久久99久久久欧美国产| 亚洲色图欧美另类| 中文字幕不卡在线播放| 久久这里只有精品国产| 欧美中文字幕亚洲一区二区va在线| 国产精品欧美亚洲| 日韩电视剧免费观看网站| 日韩理伦片在线| 午夜精品久久久久久久久久久久久| 992tv国产精品成人影院| 99电影网电视剧在线观看| 精品国产乱码久久久久久蜜坠欲下| 中文字幕乱码免费| 视频一区中文字幕| 人妻换人妻a片爽麻豆| 国产精品网曝门| 欧美bbbbbbbbbbbb精品| 欧美一三区三区四区免费在线看| 欧美美女搞黄| 欧美精品aaa| 日韩成人精品一区二区三区| 蜜桃视频日韩| 亚洲性感美女99在线| av噜噜在线观看| 国产亚洲精品中文字幕| 国产精品suv一区二区| 欧美日韩视频在线观看一区二区三区| 六月丁香色婷婷| 精品国内亚洲在观看18黄| www.成人爱| 国产一区二区久久久| 午夜国产一区| 天天操狠狠操夜夜操| 久久精品人人做人人爽人人| 日韩伦理在线视频| 日韩欧美一区在线观看| 一级日本在线| 国产精品入口日韩视频大尺度| 色先锋久久影院av| 日韩亚洲欧美视频| 国产**成人网毛片九色| 欧美在线视频第一页| 欧美高清视频不卡网| 亚洲av成人精品日韩在线播放| 欧美激情综合亚洲一二区| 国产乱码精品一区二区三区亚洲人| 性欧美大战久久久久久久免费观看| 新67194成人永久网站| 一区二区三区免费在线观看视频| 亚洲午夜精品网| 亚洲精品久久久蜜桃动漫| 欧美人在线视频| 亚洲超碰在线观看| 人妻激情另类乱人伦人妻| 国产精品一二三区在线| 永久免费看黄网站| 日韩欧美在线影院| 亚洲欧美成人影院| 国产精品果冻传媒潘| 激情欧美一区二区三区| 中国极品少妇xxxx| 亚洲成在线观看| 天天操天天操天天| 日韩av成人在线| 欧美熟乱15p| 亚洲三级在线观看视频| 亚洲精品中文字幕乱码三区| 成人av手机在线| 久久免费视频这里只有精品| 欧美色图五月天| 免费看黄色一级大片| 国产精品久久久久久妇女6080| 96亚洲精品久久久蜜桃| 欧美成人全部免费| 亚洲一区电影| 欧美a v在线播放| 久久久国产午夜精品| 亚洲天堂视频网| 久热精品视频在线观看一区| 国产精品超碰| 欧美精品第三页| 中文字幕一区二区三区不卡| 亚洲卡一卡二卡三| 日本高清视频精品| 成人看的视频| 成人一区二区三区仙踪林| 欧美日韩国产丝袜美女| lutube成人福利在线观看| 成人精品网站在线观看| 亚洲精品激情| 女人黄色一级片| 精品免费视频一区二区| **欧美日韩在线观看| 综合网五月天| 91在线高清观看| 91亚洲国产成人精品一区| 欧美激情网友自拍| 免费观看不卡av| 伊人精品视频在线观看| 黄网站色欧美视频| 欧美猛烈性xbxbxbxb| 久久大片网站| 国产伦精品一区二区三区免费迷 | 国产精品午夜av在线| 欧美v亚洲v综合v国产v仙踪林| 日韩中文第一页| 欧美h版在线观看| 日韩av在线综合| 亚洲在线成人精品| 国产毛片av在线| 国产精品国产精品| 麻豆国产精品官网|