国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

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

2016-04-12 10:18:19

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

2010-12-06 09:59:58

2020-04-29 11:28:54

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

2015-10-09 13:14:10

clip自動化運維工具

2021-09-30 09:00:00

漏洞安全工具

2011-05-31 18:17:07

分布式測試
點贊
收藏

51CTO技術棧公眾號

成人eeuss影院在线观看| 黄色在线免费| 亚洲一区二区三区免费在线观看| 日韩欧美一区二区在线视频| 九色porny91| 香蕉精品视频在线观看| 日韩中文字幕在线精品| 免费观看在线黄色网| 国产精品白丝在线| 7777在线视频| 欧美激情1区2区| 欧美亚洲免费电影| 偷拍中文亚洲欧美动漫| 欧美日韩国产综合草草| 日本一二区视频| 久久久www成人免费毛片麻豆| 日本一区二区三区视频免费看| 久久久久观看| 中文字幕在线观看日韩| 色呦呦网站在线观看| 色综合天天综合狠狠| 亚洲天堂av线| 成人亚洲精品久久久久软件| 免费精品视频一区二区三区| 99精品视频精品精品视频| 久久久久这里只有精品| 韩国精品主播一区二区在线观看 | 天堂va蜜桃一区二区三区漫画版| 777精品视频| 成人短视频软件网站大全app| 亚洲精品98久久久久久中文字幕| 在线观看av的网站| 91成人免费在线| 免费黄网站在线观看| 午夜精品国产更新| 黄色直播在线| 亚洲在线视频免费观看| 网上成人av| 亚洲视频免费看| wwwav91com| 亚洲黄色性网站| 黄污在线观看| 欧美日韩加勒比精品一区| 伪装者在线观看完整版免费| 日韩欧美在线视频免费观看| 不卡区在线中文字幕| 少妇免费毛片久久久久久久久 | 国产一区二区三区黄| 欧美日韩视频| 亚洲自拍偷拍视频| 88国产精品视频一区二区三区| 国产精品免费一区| 欧美久久影院| 日韩av高清| 国产成人午夜精品影院观看视频| 福利在线一区二区| 久久久精品天堂| 免费播放av| 欧美性高清videossexo| 免费在线观看的电影网站| 亚洲第一精品自拍| 国产精品黄色片| 国模精品系列视频| 外国成人激情视频| 欧美午夜欧美| 成人av在线一区二区| 丝袜制服影音先锋| 色偷偷久久一区二区三区| 丝袜在线视频| 久久综合色88| av一区二区高清| 欧美一区二区三区在线播放 | 国产精品久久久久999| 少妇精品久久久| 国产精品99一区二区三区| 亚洲精品久久区二区三区蜜桃臀 | 免费看日本毛片| 国产日产欧美精品一区二区三区| 国产无遮挡又黄又爽免费软件| 亚洲3atv精品一区二区三区| 在线观看麻豆| 成全视频全集| 亚洲成人黄色影院| 性欧美ⅴideo另类hd| 色爱精品视频一区| 成人a'v在线播放| 欧美精品欧美精品| 久久精品男人天堂av| 男人天堂资源在线| 中文字幕少妇一区二区三区| 蜜乳av综合| 亚洲免费视频一区| 亚洲欧美在线视频观看| 黄色免费网站在线| 69久久夜色精品国产69乱青草| 亚洲国内精品| 久久久久国产精品熟女影院 | 少妇人妻在线视频| 日韩欧美极品在线观看| 无遮挡在线观看| 国产精品日韩av| 久久电影国产免费久久电影 | a优女a优女片| 精品嫩草影院久久| 四虎5151久久欧美毛片| 色999日韩自偷自拍美女| 国产精品白丝在线| 免费欧美电影| 蜜桃久久精品乱码一区二区 | 欧美国产一区二区在线观看| 国产日产精品久久久久久婷婷| 一区二区欧美激情| 亚洲精选成人| 男女激情视频网站| 久久精品成人欧美大片古装| 99re国产精品| 午夜在线免费视频| 麻豆乱码国产一区二区三区| 久久狠狠婷婷| 濑亚美莉一二区在线视频 | 欧美欧美午夜aⅴ在线观看| 中文字幕日本一区| 欧美视频观看一区| 欧美日韩另类字幕中文| 亚洲一区二区电影| 免费极品av一视觉盛宴| 欧美人体做爰大胆视频| 韩日一区二区三区| 国产美女三级视频| 亚洲欧美在线免费观看| 国产精品一国产精品k频道56| 婷婷六月天丁香| 国模精品系列视频| 97久久人人超碰| 日韩不卡免费高清视频| 欧洲成人一区二区| 色偷偷一区二区三区| 国产成人调教视频在线观看| 激情综合在线观看| 国产一区二区三区直播精品电影| 日韩av一级片| 国产调教视频在线观看| 成人3d动漫一区二区三区91| 亚洲高清免费在线| 视频一区欧美| 日本a级黄色| 91国内产香蕉| 中文字幕一区免费在线观看 | 日韩视频一二三| 精品国产免费视频| 久久精品观看| 二区三区在线观看| 蜜桃导航-精品导航| 欧美日韩综合在线免费观看| 欧美3p视频| 日本私人网站在线观看| 国产精品三级网站| 欧美色欧美亚洲高清在线视频| 日韩精品第一区| 一个人看的www一区| 欧美最近摘花xxxx摘花| 亚洲人成网站精品片在线观看| 欧美男人操女人视频| 国产无遮挡又黄又爽免费软件| 欧美与欧洲交xxxx免费观看| 亚洲男同1069视频| 97精品视频| 97caopron在线视频| 亚洲高清精品中出| 亚洲欧洲自拍偷拍| 久久婷婷久久一区二区三区| 在线精品国产亚洲| 动漫成人在线观看| 成人一区二区三区四区| 欧美日韩国产欧美日美国产精品| 激情自拍一区| 2021中文字幕在线| 婷婷无套内射影院| 91精品国产色综合久久不卡98| 一区二区三区日韩精品视频| 欧美超碰在线| 成人短视频在线| 国产免费内射又粗又爽密桃视频| www.欧美精品| 一区二区免费视频| 亚洲三级电影在线观看| 丁香花视频在线观看| 一二三四视频社区在线| 日本久久久久久久| 欧美揉bbbbb揉bbbbb| 国内精品免费在线观看| 蜜桃精品视频| 你懂的视频在线播放| 亚洲精品二区| 久久久久久久久久久免费| 亚洲大片精品永久免费| 日韩制服丝袜先锋影音| 亚洲综合资源| 国产精品免费播放| 日日鲁鲁鲁夜夜爽爽狠狠视频97|