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

Lemonj:類 CSS 的自動化重構工具

開發 開發工具 自動化
開發人員對于 CSS 及其 CSS 預處理器的使用是一個很有意思的問題 —— 過去,我一直在吐槽這些想寫好 CSS 的人,卻是一點兒也不想高認真學習 CSS。

[[354884]]

最近,在幫助一家大型公司的大型前端項目設計和構建前端體系,期間和我同事 @Liuuy 討論起了 CSS 的架構和設計問題。開發人員對于 CSS 及其 CSS 預處理器的使用是一個很有意思的問題 —— 過去,我一直在吐槽這些想寫好 CSS 的人,卻是一點兒也不想高認真學習 CSS。

于是,在我們的討論之下,我借助了在編寫 Coca 的經驗,設計和驗證了自動化重構的可能性。由我的同事完成了 TypeScript 的 CSS 自動化重構工具:Lemonj —— 名字是我取的 。

Lemonj

GitHub:https://github.com/twfe/lemonj

Lemonj 是一個面向 CSS/LESS/SCSS 的分析、壞味道檢查和自動化重構工具。

從架構上來說,它就是通過 Antlr + Antlr4TS 生成對應的解析器生成器,而后根據需要處理所需的字段對相應的內容進行標記。隨后,根據我們的需要和設計,通過 AST 中的位置信息,修改對應的內容值。

如 importants 數量分析中的代碼:

  1. if (Checker.hasImportant(propertyValue)) { 
  2. if (!this.metadata.importants) { 
  3. this.metadata.importants = []; 
  4.  
  5. this.metadata.importants.push({ 
  6. type: '!important'
  7. file: this.metadata.filePath, 
  8. line: ctx._start.line, 
  9. }); 

它便是獲取 CSS 屬性中的內容,檢查是否有 !important,然后記錄一下位置信息。

與 CSS 轉換器的不同之處

或許你也用過各類的 CSS/LESS/SAAS 轉換工具,所以會好奇它們與 Lemonj 的相似與不同之處在哪里。

CSS 轉 CSS 預處理器轉換工具。它們都是一鍵式的上傳一個類 CSS 文件,從中提取語法樹,轉換到新的形式上。而要實現不同預處理器的轉換,你可能還需要多個轉換工具。而且它們只能在一個文件上修改,而你的代碼是分散在代碼庫中。

Lemonj 自動化重構 CSS 工具。也是分析語法樹,從中提取文件的信息,但不能直接轉換到新的形式上。而是要分析出代碼中的問題,結合 AST 中獲取到的位置信息,再回到指定的文件中對它們進行自動化修改。

你可以認為一個是在現有的代碼基本上自動修改,一個是則是普通的轉換工具 —— 畢竟根據位置修改是一個累人的工作。

使用 Lemonj 進行 CSS 自動化重構

1.先安裝 Lemonj,即: npm install lemonj -g 又或者是: yarn global add lemonj

2.使用 Lemonj 分析下代碼: lemonj analysis _fixtures,這里的 _fixtures 是個目錄。

過程中,會生成對應的壞味道數據:

  1. Code Smell: { 
  2. colors: 24, 
  3. importants: 4, 
  4. issues: 8, 
  5. mediaQueries: 1, 
  6. absolute: 0, 
  7. oddWidth: 1 

因為壞味道功能太普通了,所以我們暫時沒有增強,并非我們的核心競爭力所在。除此,在執行 anlaysis 的時候,還會生成一些額外的信息,比如顏色的 mapping 文件:

  1. // _fixtures/less/color/border.less 
  2. @color1: #ddd; 
  3. // _fixtures/less/color/border.less 
  4. @color2: green; 
  5. // _fixtures/less/color/rgba.less 
  6. @color3: rgba(255, 0, 0, 0.3); 
  7. // _fixtures/less/color/sample.less 
  8. @color4: #ff7f50; 
  9. // _fixtures/less/color/sample.less 
  10. // _fixtures/less/color/sample2.less 
  11. @color5: #800080; 
  12. // _fixtures/less/color/sample.less 

這里的顏色只是暫時的命名,需要根據具體的需要進行調整,如按設計系統的思想,將 color_1 改成 @primary_color。

3.執行 lemonj refactor _fixtures 對代碼進行自動化重構。就能將上一步中的代碼,進一步地修改到所有的代碼文件中。

嗯,重構就是如此的簡單。

其它

Charj 的功能在完善中,歡迎大家看看你們有哪些場景適合自動化重構。

最后,記得我們的 GitHub:https://github.com/twfe/lemonj

冰河  本文轉載自微信公眾號「phodal」,可以通過以下二維碼關注。轉載本文請聯系phodal公眾號。

 

責任編輯:武曉燕 來源: phodal
相關推薦

2020-12-08 06:20:49

前端重構Vue

2022-02-21 11:24:14

代碼工具開發

2022-03-30 09:43:19

jscodeshif自動化重構開發

2021-06-28 06:32:46

Tekton Kubernetes Clone

2013-07-02 10:45:38

2016-12-05 15:48:37

2017-12-17 21:58:18

2014-11-12 09:24:00

2014-09-22 11:24:18

運維

2012-12-24 22:54:31

2012-03-15 10:32:05

Windows系統網絡故障

2011-11-18 09:11:21

Web

2022-02-18 13:12:49

人工智能自動化技術

2022-02-17 17:37:17

超級自動化人工智能AI

2020-04-29 11:28:54

智能自動化機器人流程自動化AI

2010-12-06 09:59:58

2016-04-12 10:18:19

代碼審計自動化代碼審計工具

2015-10-09 13:14:10

clip自動化運維工具

2021-09-30 09:00:00

漏洞安全工具

2011-05-31 18:17:07

分布式測試
點贊
收藏

51CTO技術棧公眾號

日本欧美韩国国产| 日韩电影免费看| 国产91高潮流白浆在线麻豆 | 亚洲欧美不卡| 中文字幕av日韩| 成人欧美精品一区二区| 欧美日韩国产v| 亚洲人成在线观看一区二区| 久久精精品视频| 91久久久久久久久久久久| 99热精品在线| 久久亚洲精品毛片| 99久久久久久久久久| 国产精品免费精品自在线观看| 偷窥国产亚洲免费视频| 亚洲一区二区在| 亚洲色图狠狠干| 国产精品77777| 国产精品久久久久久五月尺| 日本a在线观看| 国产韩日影视精品| 日韩麻豆第一页| 红桃视频一区二区三区免费| 亚洲a∨精品一区二区三区导航| 一区二区三区四区五区视频在线观看| 日本一区二区在线视频观看| 狠狠躁日日躁夜夜躁av| 黄页网站大全一区二区| 国产精品r级在线| 日本天堂网在线观看| 亚洲自拍偷拍网| 色妞一区二区三区| 97在线观看免费视频| 女一区二区三区| 精品美女在线观看| 日韩精品xxx| 成人在线视频观看| 欧美曰成人黄网| 欧美极品欧美精品欧美图片| 久草在线资源站手机版| 亚洲国产成人av网| av在线免费观看国产| 午夜dj在线观看高清视频完整版| 亚洲国产精品黑人久久久| 久久精品五月婷婷| 日日夜夜精品免费| 成人一区二区三区视频在线观看 | 1024亚洲合集| 在线视频一区观看| 麻豆传媒视频在线| 中文字幕一区二区不卡| 亚洲欧洲精品在线| 色的视频在线免费看| 国产欧美精品日韩区二区麻豆天美 | 日产精品久久久久| 亚洲性色视频| 538国产精品一区二区免费视频| 亚欧视频在线观看| 国产精品日本| 国产成人aa精品一区在线播放| 日韩不卡视频在线| 水野朝阳av一区二区三区| 热99精品只有里视频精品| 国产伦精品一区二区三区视频我| 亚洲欧美亚洲| 国外成人在线直播| 一级黄色在线视频| 日本v片在线高清不卡在线观看| 国产精品日韩在线观看| 国产精品无码天天爽视频| 国产精品一二一区| 国产一区二区三区黄| 日本黄在线观看| 国产农村妇女毛片精品久久麻豆| 一区二区三区四区欧美| av网站导航在线观看免费| 亚洲综合在线五月| 97xxxxx| 少妇精品视频在线观看| 日韩欧美在线网站| jizz日本免费| 97久久视频| 欧美激情综合亚洲一二区| 国产精品777777| 看电视剧不卡顿的网站| 痴汉一区二区三区| 高清日韩av电影| 一区二区在线观看视频| 日韩免费毛片视频| 国产精品日本一区二区不卡视频| 亚洲福利在线视频| 五月婷婷婷婷婷| 亚洲成人中文| 91精品久久久久| 婷婷五月综合久久中文字幕| 国产欧美精品一区| 亚洲色欲久久久综合网东京热| 麻豆免费在线| 欧美一区二区三区日韩视频| 欧美精品黑人猛交高潮| 亚洲一区 二区 三区| 日本韩国在线不卡| 精品乱子伦一区二区| 国产亚洲欧美一级| 欧美一区二区视频在线播放| 成人自拍视频网| 亚洲成人av中文字幕| 一本在线免费视频| 亚洲欧美日韩国产一区| 98国产高清一区| 在线激情网站| 色视频欧美一区二区三区| 丰满饥渴老女人hd| 爽成人777777婷婷| 日韩av片永久免费网站| 男人天堂网在线视频| 亚洲日本在线视频观看| 亚洲精品一二三四五区| 欧美午夜寂寞| 久久久久久伊人| 国产喷水吹潮视频www| 欧美高清视频| 中文字幕一区二区在线观看| 国产精品第12页| 欧美黄色影院| 欧美国产精品人人做人人爱| 一区二区三区免费在线| 久久久亚洲精品石原莉奈| 99热亚洲精品| 亚洲日本va午夜在线电影| 日韩综合视频在线观看| 波多野结衣大片| 337p粉嫩大胆噜噜噜噜噜91av| 免费人成自慰网站| 成人午夜大片| 欧美国产日韩精品| 国产高清免费观看| 亚洲精品亚洲人成人网在线播放| 亚洲欧美久久久久| 日韩av在线播放网址| 国产精品pans私拍| 国产九色在线| 欧美亚洲一区二区在线观看| 成人黄色免费网址| 日本91福利区| 一区二区国产日产| 羞羞视频在线观看一区二区| 日韩午夜在线视频| 国产精品无码一区二区桃花视频 | 日本一区视频在线观看免费| 欧美xxxxxx| 中文国产成人精品久久一| 自拍偷拍第八页| 国产精品欧美久久久久无广告| 青青青在线视频免费观看| 精品久久影院| 成人福利视频在线观看| 成年人黄视频在线观看| 欧美xxxxx牲另类人与| 日本熟女一区二区| 久久久噜噜噜久噜久久综合| 我看黄色一级片| 99精品在线| av噜噜色噜噜久久| 国产h片在线观看| 亚洲欧美日韩一区二区在线 | 一二三四视频在线中文| 亚洲欧美精品一区二区| 少妇无套内谢久久久久| 国产精品激情偷乱一区二区∴| 九九热视频免费| 亚洲视频高清| 欧美重口乱码一区二区| 日韩免费在线电影| 久久久在线视频| 九色在线视频蝌蚪| 欧美一区二区三区色| 久久精品女人毛片国产| 久久蜜臀精品av| www.色欧美| 欧美激情五月| 欧美国产视频在线观看| av在线亚洲一区| 97视频在线观看免费高清完整版在线观看| 视频一区二区三区在线看免费看| 欧美日韩在线综合| 久久精品国产亚洲av麻豆色欲| 国产亚洲欧美在线| 午夜性福利视频| 日韩精品久久理论片| 毛片在线视频观看| 久久av中文| 亚洲一区中文字幕| 神马久久资源| 欧美黄色小视频| av播放在线| 亚洲国产成人精品一区二区| 中文字幕乱码人妻无码久久| 午夜精品爽啪视频| 亚洲 欧美 变态 另类 综合| 91在线观看地址| 337p日本欧洲亚洲大胆张筱雨 | 国产精品美女免费看| 黄网av在线| 久久精品国亚洲| 久蕉依人在线视频| 亚洲成人av在线播放| 国产特黄一级片| 欧美在线free| 国产成人无码av| 一级中文字幕一区二区| 久久嫩草捆绑紧缚| 国产日韩欧美精品一区| 免费的av网站| 国产suv精品一区二区6| 久久撸在线视频| 日韩一区精品字幕| 99爱视频在线| 亚洲国产高清视频| 欧美黄色免费网址| 亚洲国产老妈| 综合视频在线观看| 欧美中文一区二区| 日本午夜精品电影| 在线日本制服中文欧美| 加勒比在线一区二区三区观看| 欧美经典一区| 亚洲一区久久久| 美女久久精品| 成人综合国产精品| 日韩综合av| 国产精品自产拍在线观| 日韩一区精品| 国产精品第一第二| 影视一区二区三区| 国产精品成人一区二区| 中文字幕日本一区二区| 国产精品久久中文| 主播大秀视频在线观看一区二区| 国产精品盗摄久久久| 超碰这里只有精品| 国产欧美精品一区二区三区介绍| 你懂得影院夜精品a| 国产精品美女久久久久久免费| 日本一区二区三区视频在线| 日韩免费观看网站| 午夜精品久久久久久久久久蜜桃| 日韩免费av片在线观看| 成人不卡视频| 国产精品专区h在线观看| 香蕉久久一区| 99热在线国产| 全国精品免费看| 美女黄毛**国产精品啪啪| 久久99国内| 亚洲午夜精品久久久久久浪潮| 日韩国产专区| 久久久久久久久久久久久国产| 国产精品jizz在线观看美国| 免费毛片网站在线观看| 国产精品嫩草99av在线| 国产三级日本三级在线播放| 另类中文字幕网| 日本少妇一区二区三区| 成人午夜看片网址| 亚洲人人夜夜澡人人爽| 中国色在线观看另类| 中国毛片直接看| 亚洲成人在线免费| 欧美一级淫片免费视频黄| 欧美日韩五月天| 丰满大乳国产精品| 亚洲欧美激情一区| a级网站在线播放| 91精品国产九九九久久久亚洲| 免费亚洲电影| 91亚洲国产成人久久精品网站 | 亚洲精品成人三区| 欧美伊人影院| 国产精品亚洲a| 国产一区二区不卡在线| 国产传媒第一页| 亚洲欧美日韩一区二区三区在线观看 | 欧美三级美国一级| 成人在线免费观看网址| 午夜一级久久| 色偷偷中文字幕| 99re在线精品| 永久免费看mv网站入口| 大桥未久av一区二区三区| 国产又粗又猛又色又| 日韩国产欧美精品在线| av香蕉成人| 国产精品高潮视频| 成人h动漫免费观看网站| 天天久久人人| 亚洲精品少妇| 亚洲精品在线网址| 久久精品水蜜桃av综合天堂| 国产亚洲精品成人| 欧美美女喷水视频| 蜜桃成人在线视频| 欧美高清在线播放| 亚洲ww精品| 日韩精品久久久免费观看| 亚洲黄色av| 日本中文字幕在线不卡| 欧美激情在线一区二区三区| 亚洲一区欧美在线| 91精品国产一区二区| av在线播放网站| 2019av中文字幕| 在线日韩成人| 亚洲AV无码成人精品一区| 日韩主播视频在线| 三级电影在线看| 亚洲一区在线免费观看| 99热这里只有精品3| 一区二区三区视频免费| 亚洲人体影院| 九色一区二区| 亚洲精品婷婷| 黄色免费看视频| 香蕉成人啪国产精品视频综合网| 国产999久久久| 久久精品国产亚洲精品2020| 婷婷久久免费视频| 亚洲欧美精品| 久久国产精品免费| 免费看91的网站| 在线亚洲高清视频| 免费一级在线观看播放网址| 欧美性资源免费| 日韩有码中文字幕在线| 国产视频一视频二| 91在线精品一区二区| 国产综合精品视频| 国产视频精品久久久| 制服丝袜专区在线| 蜜桃av噜噜一区二区三区| 亚洲综合不卡| 深爱五月激情网| 色综合久久中文字幕| 黄视频在线播放| 国产精品久久久久久久久影视| 国产一区日韩| 91亚洲免费视频| 亚洲欧美日韩中文播放| 亚洲国产精品久久久久爰性色 | 99久re热视频精品98| 国产精品一区三区| 欧美人与禽zozzo禽性配| 亚洲成人av资源网| 电影一区二区三区| 日韩欧美精品在线不卡| 琪琪一区二区三区| 在线观看黄网址| 日韩欧美国产一二三区| av福利导福航大全在线| 精品欧美一区二区在线观看视频 | 国产裸舞福利在线视频合集| 国产精品视频在线观看| 91成人影院| 国产在线不卡av| 91成人看片片| 黄色网址在线免费观看| 国产成人精品福利一区二区三区 | 国产一区清纯| 国产乱了高清露脸对白| 日韩欧美999| 毛片av在线| 99免费在线观看视频| 另类图片国产| 一区二区国产精品精华液| 亚洲成人网在线观看| 在线成人视屏| 日本三级中文字幕在线观看| 9久草视频在线视频精品| 欧美性受xxx黑人xyx性爽| 免费成人高清视频| 日韩有码中文字幕在线| 最新天堂在线视频| 午夜日韩在线观看| av在线第一页| 久久精品国产精品青草色艺 | 91精品久久久久| 国产亚洲在线观看| 日本二区三区视频| 亚洲韩国欧洲国产日产av | 亚洲一区中文| 91久久久久久久久久久久久久| 亚洲福利视频在线| 四虎国产精品成人免费影视| 可以在线看的av网站| 亚洲欧美自拍偷拍| 日韩成人黄色| 国产精品国产精品国产专区蜜臀ah| 青青草伊人久久| 999这里只有精品| 美女精品视频一区|