精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

制服视频三区第一页精品| 久久久不卡影院| 亚州欧美日韩中文视频| 成年人免费观看视频网站 | 久久久久久中文字幕| 欧类av怡春院| 亚洲欧美综合久久久久久v动漫| 一区二区三区欧美亚洲| 日本欧美色综合网站免费| 国产视频手机在线观看| 久久精品卡一| 欧美丰满老妇厨房牲生活| 国产1区2区在线观看| 9999久久久久| 欧美日韩和欧美的一区二区| 你懂的av在线| 2024最新电影在线免费观看| 久久久激情视频| 国产精品国模大尺度私拍| 在线不卡免费视频| 久久狠狠婷婷| 久久久久久久久久久人体| 国产精品18在线| 久久不见久久见国语| 精品成人一区二区| 久草福利在线观看| 欧美激情啪啪| 欧美亚洲综合另类| 国产亚洲天堂网| hd国产人妖ts另类视频| 亚洲视频一区在线观看| 日本在线观看一区二区三区| 午夜视频福利在线| 成人国产精品视频| 国产成人看片| 成人乱码一区二区三区| 国产一区二区福利视频| 国产日韩欧美成人| 国产情侣免费视频| 老牛国产精品一区的观看方式| 国产+人+亚洲| 国产一级在线观看视频| 韩国亚洲精品| 精品综合久久久久久97| 国产盗摄一区二区三区在线| 天堂网在线观看国产精品| 一道本无吗dⅴd在线播放一区| 国产亚洲无码精品| 精品亚洲自拍| 日韩精品小视频| 野花社区视频在线观看| 人人香蕉久久| 亚洲欧美国产另类| av女人的天堂| 第一会所亚洲原创| 永久555www成人免费| 91资源在线播放| 日韩精品诱惑一区?区三区| 一区二区三区四区精品| 国产探花视频在线| 91精品精品| 久久99亚洲精品| 精品在线视频免费| 国产精品尤物| 国产精品视频播放| 国产精品久久久久久免费播放 | 国产精品视频自拍| 亚洲网站免费观看| 国内精品视频666| 99在线观看| 亚洲欧美综合一区二区| 国产日韩精品视频一区| 亚洲一区二区在线免费观看| 1024在线播放| 好吊成人免视频| 天天操天天爱天天爽| 亚洲毛片在线免费| 亚洲精品一区二区三区蜜桃下载| 国产特黄级aaaaa片免| 久久福利综合| 久久男人资源视频| 超碰在线免费97| 国内成人精品2018免费看| 福利精品视频| 二区在线观看| 亚洲综合另类小说| 日本精品久久久久中文字幕| 男人天堂久久| 亚洲精品97久久| 久久久国产一级片| 亚洲午夜在线| 国产精品高潮呻吟久久av无限| 精品国产av 无码一区二区三区| 成人蜜臀av电影| 亚洲一区三区视频在线观看 | 亚洲一二三四区不卡| 99爱视频在线| 欧洲精品久久久久毛片完整版| 精品国产一区二区三区av性色 | 亚洲一卡二卡三卡四卡五卡| 亚洲成人av免费看| 亚洲一区二区三区中文字幕在线观看 | 亚洲图片激情小说| 不卡影院一区二区| 99久热在线精品视频观看| 日韩电影中文字幕| 青青草激情视频| 日韩成人精品在线| 精品一区二区视频| 黄色成人在线观看| 在线视频观看一区| 中文字幕在线视频播放| 婷婷久久一区| 国产精品久久久久久网站| 秋霞网一区二区| 亚洲人成网站色在线观看 | 国产精品一区2区| 日产精品高清视频免费| www视频在线观看| 在线不卡免费av| 中文字幕第69页| 久热综合在线亚洲精品| 国产欧美在线一区二区| 性欧美videoshd高清| 欧美精品三级在线观看| 长河落日免费高清观看| 日韩精品一级二级 | 狠狠综合久久| 91青草视频久久| 在线激情免费视频| 欧美亚洲国产一区在线观看网站| 国产 中文 字幕 日韩 在线| 欧美日本中文| 91丝袜脚交足在线播放| 激情视频在线观看| 欧美精品vⅰdeose4hd| 日本精品久久久久中文| 日韩在线一二三区| 欧美另类视频在线| 欧美大片免费| 国产亚洲美女精品久久久| 日本中文字幕第一页| 2021久久国产精品不只是精品| 国产妇女馒头高清泬20p多| jizz性欧美23| 97视频在线观看免费高清完整版在线观看| www男人的天堂| 亚洲一区影音先锋| 国产草草浮力影院| 亚洲欧美日韩国产| 色一情一乱一伦一区二区三欧美 | 亚洲欧美成人综合| 久久日韩精品| gogo亚洲高清大胆美女人体| 国产一区二区三区18| 中文字幕在线观看免费| 中文字幕欧美一| 北条麻妃亚洲一区| 国语对白精品一区二区| 国产综合精品一区二区三区| 中文字幕 在线观看| 一本色道久久88综合亚洲精品ⅰ| 在线观看国产精品视频| 一区二区三区免费在线观看| 污污污www精品国产网站| 亚洲视频1区| 日韩高清国产一区在线观看| 国产综合色激情| 精品国产美女在线| 亚洲第一成年人网站| 欧美日韩视频在线| 精品国产大片大片大片| 国产成人在线免费观看| 精品无码一区二区三区在线| 精品视频亚洲| 999精品视频一区二区三区| av日韩中文| 在线视频中文亚洲| 精品久久久久久亚洲综合网站| 亚洲va中文字幕| 性猛交ⅹxxx富婆video| 国产福利精品一区| 国产a级片免费观看| 永久91嫩草亚洲精品人人| 加勒比在线一区二区三区观看| 亚洲四虎影院| 欧美人在线观看| 国产在线中文字幕| 日韩一区国产二区欧美三区| 欧美特黄aaaaaa| 亚洲人成在线观看一区二区| 99久久人妻无码中文字幕系列| 麻豆精品视频在线观看免费| 日韩视频免费播放| 日本久久一二三四| 精品视频导航| 久久丁香四色| 国产成人免费av电影| 色老头在线观看| 在线免费观看羞羞视频一区二区| 丰满人妻一区二区| 欧美色视频在线观看| 日韩av男人天堂| 亚洲欧美日韩小说| 天天躁夜夜躁狠狠是什么心态| 高清不卡一区二区| 欧美大片久久久| 日韩激情一区二区| 秋霞无码一区二区| 国产精品啊v在线| 日本黄色播放器| 国产一区二区在线| 国内一区二区在线视频观看| 国产日韩一区二区三免费高清| 国产成人涩涩涩视频在线观看| 黄页在线观看免费| 九色成人免费视频| av成人手机在线| 一本色道久久综合亚洲精品小说 | 爽成人777777婷婷| 日本免费高清一区| 亚洲国产合集| 久久精品国产第一区二区三区最新章节| 蜜桃精品一区二区三区| 国产欧美日韩视频| 成人在线免费| 国产精品高潮粉嫩av| 卡通欧美亚洲| 456亚洲影院| 日本а中文在线天堂| 久久久综合av| heyzo在线播放| 97精品免费视频| 678在线观看视频| 国语自产精品视频在线看抢先版图片| bt在线麻豆视频| 久久久国产一区| 91在线中文| 欧美大码xxxx| 特级毛片在线| 久久久久国产精品www| 先锋成人av| 欧美国产日韩一区| 第一中文字幕在线| 午夜精品久久久久久久久久久久久 | 91大神福利视频在线| 国产色播av在线| 欧美又大又硬又粗bbbbb| 毛片免费看不卡网站| 国产精品扒开腿做爽爽爽的视频| 日本国产欧美| 国产在线观看精品| 国产成人免费看| 国产精品久久久久久久久久久久久久久 | 午夜精品在线| av蓝导航精品导航| 国产无遮挡裸体免费久久| 国产日韩欧美一区二区三区四区| 欧美1区二区| 欧美日韩精品一区| 大色综合视频网站在线播放| 美国av在线播放| 欧美日韩国产亚洲一区| 成年人网站免费视频| 久久精品观看| www.久久91| 成人综合婷婷国产精品久久蜜臀 | 国产日韩精品在线| 伊人久久大香线蕉av超碰| 国产精品区一区二区三含羞草| 日韩a级大片| 亚洲成色最大综合在线| 中文字幕免费一区二区| 九一国产精品视频| 免费在线观看一区二区三区| 可以看的av网址| www成人在线观看| 久草福利资源在线| 亚洲va欧美va人人爽| 国产污视频网站| 91精品国产综合久久国产大片| 黄色aaa毛片| 亚洲小视频在线| 香蕉成人app免费看片| 浅井舞香一区二区| 99精品视频在线免费播放| 精品国产一区二区三区四区精华| 日韩专区精品| 日韩免费一级视频| 久久99精品国产麻豆婷婷洗澡| 人妻激情偷乱频一区二区三区| 久久久久久**毛片大全| 黄色一级片在线| 在线免费观看成人短视频| www日本在线| 深夜福利亚洲导航| 2020av在线| 91香蕉国产在线观看| 欧美美女在线观看| 免费看欧美黑人毛片| 免费高清在线一区| 成人影视免费观看| 亚洲一区二区三区视频在线播放| 岳乳丰满一区二区三区| 亚洲九九九在线观看| 久久亚洲资源| 91精品视频播放| 成人精品亚洲| 日本黄网站免费| 成人av午夜影院| 黄色一级免费视频| 欧美一区二区三区性视频| 成人福利在线| 91成人福利在线| 国产一级成人av| 日本a级片在线播放| 久久99国产精品尤物| 亚洲性猛交xxxx乱大交| 亚洲成a人在线观看| 精品国产无码一区二区| 日韩视频在线免费观看| 毛片免费看不卡网站| 久久精品日产第一区二区三区乱码 | 最近国语视频在线观看免费播放| 亚洲国产小视频| 爱情岛亚洲播放路线| 92看片淫黄大片欧美看国产片| 日韩综合在线| av免费一区二区| 国产精品毛片无遮挡高清| 在线免费观看av网址| 亚洲欧美日本精品| 欧美一级大黄| 欧洲一区二区在线| 老司机精品福利视频| 午夜精产品一区二区在线观看的| 欧美日韩一区二区精品| 青青草在线免费观看| 欧洲午夜精品久久久| 日韩欧美在线精品| 无码人妻丰满熟妇区毛片18| 91丨九色丨国产丨porny| 国产精品美女久久久久av爽| 亚洲高清久久网| 在线中文字幕播放| 日韩欧美亚洲v片| 精东粉嫩av免费一区二区三区| 懂色av蜜臀av粉嫩av永久| 欧美精选午夜久久久乱码6080| 国产网友自拍视频导航网站在线观看 | 99r国产精品| yjizz国产| 伊人久久久久久久久久久久久| 高清亚洲高清| 精品少妇人妻av一区二区| 国产精品99久久久久久久vr| 久操免费在线视频| 精品国产sm最大网站| 国产精品专区免费| 一级做a爰片久久| 国产精品18久久久久久久久久久久| 久久久久久国产精品视频| 亚洲激情视频在线| 色天使综合视频| 色呦呦网站入口| 国产99久久久国产精品免费看| 免费毛片一区二区三区| 国产亚洲欧美日韩一区二区| 农村妇女一区二区| 无码日本精品xxxxxxxxx| 99热99精品| 一级久久久久久久| 久久免费在线观看| 欧美一级精品| 亚洲国产精品狼友在线观看| 色综合天天综合给合国产| 在线观看黄av| 国产精品久久久对白| 久久久久综合| 放荡的美妇在线播放| 国产视频精品xxxx| 电影一区中文字幕| 日本精品一区在线观看| 日韩一区有码在线| 天堂在线中文字幕| 成人激情av在线| 久久黄色影院| 精品在线视频观看| 一本久久综合亚洲鲁鲁| 动漫3d精品一区二区三区乱码| wwww.国产| 无吗不卡中文字幕| 久操视频在线免费播放| 欧美不卡在线一区二区三区| 国产综合成人久久大片91| 欧美一级片免费在线观看| 久久福利网址导航| 狠狠操综合网| 97精品人妻一区二区三区蜜桃| 欧美日韩国产中文|