久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

ponytail插件:用AST給CSS樣式“扎辮子”,安全清理冗余樣式

ponytail插件:用AST給CSS樣式“扎辮子”,安全清理冗余樣式 最近前端群里好幾個(gè)人都在問 ponytail 插件到底怎么用尤其是“ponytail skill”這個(gè)叫法聽起來像是個(gè)新出的玩具。其實(shí)它是一套專門用來給 CSS 樣式文件“收辮子”的工具——掃描、標(biāo)記、清理、重構(gòu)把散落各處的冗余樣式統(tǒng)一歸攏所以叫 ponytail馬尾辮。如果你經(jīng)常被幾百行沒人敢動(dòng)的global.css勸退或者每次改完 HTML 都要提心吊膽地查樣式有沒有掛掉這篇就是給你寫的。ponytail 不是一個(gè)花哨的 UI 組件庫也不是動(dòng)畫庫它更像是前端工程化里的“樣式整理師”。我會(huì)從設(shè)計(jì)思路講起再給出一套可以直接照抄的安裝、配置、實(shí)操流程最后把我踩過的坑和排查邏輯一并整理出來。不管你是剛接觸前端工程化的新人還是維護(hù)老項(xiàng)目到頭疼的資深開發(fā)應(yīng)該都能從中拿到點(diǎn)能立刻用得上的東西。1. 先搞清楚 ponytail 是什么以及它想解決什么問題1.1 一個(gè)很形象的命名馬尾辮“ponytail”直譯過來是馬尾辮這個(gè)命名其實(shí)特別直白。一個(gè)項(xiàng)目跑久了幾乎不可避免地會(huì)出現(xiàn)這類狀況.btn定義了好幾次有的在基礎(chǔ)樣式里有的在頁面級(jí)樣式里當(dāng)年做活動(dòng)頁留下的.active-banner-2023早就沒人用了但文件里還堂而皇之地躺著還有一些選擇器嵌套五六層拆開來看全是重復(fù)聲明。這時(shí)候整個(gè)樣式文件就像一頭沒梳理的亂發(fā)看著厚重實(shí)際上有用的大概只有一半。ponytail 想做的就是拿一根皮筋把這些頭發(fā)扎起來——先梳順再扎緊最后讓那些飄在外面、已經(jīng)失去作用的碎發(fā)直接剪掉。這根“皮筋”就是它的核心流程通過靜態(tài)分析掃描項(xiàng)目里所有 CSS/SCSS 文件和匹配的模板文件找出真正被引用的選擇器、真正生效的聲明塊然后把冗余部分標(biāo)記出來給你一份可執(zhí)行的清理報(bào)告。所以 ponytail 不適合用“樣式檢查工具”來簡(jiǎn)單定義。它更像一個(gè)帶有重構(gòu)建議的“樣式瘦身器”重點(diǎn)不在挑錯(cuò)而在幫你安全地做減法。尤其當(dāng)你面對(duì)一個(gè)沒有測(cè)試覆蓋、樣式文件歷史包袱很重的老項(xiàng)目時(shí)這種“先分析、再報(bào)告、最后動(dòng)手”的方式會(huì)比人工眼睛排查可靠得多。1.2 ponytail skill 和 ponytail 插件之間的關(guān)系很多人在搜索“ponytail skill”和“ponytail 插件”時(shí)容易把它們當(dāng)成兩個(gè)東西。實(shí)際上它們指的是同一個(gè)工具在不同形態(tài)下的兩種使用方式?!安寮毙螒B(tài)通常是可以直接安裝的 CLI 工具通過npx ponytail或全局命令執(zhí)行掃描、輸出報(bào)告、自動(dòng)修剪。這種形態(tài)適合本地開發(fā)、CI 流水線一切都在命令行里完成輸出是 JSON 格式的報(bào)告方便后續(xù)處理?!皊kill”形態(tài)則是給 AI 編程助手用的封裝。現(xiàn)在很多 AI 編程環(huán)境支持“自定義技能”本質(zhì)上是把一個(gè)結(jié)構(gòu)化的操作手冊(cè)Markdown和配套腳本放進(jìn)指定的skills目錄AI 在回答相關(guān)問題時(shí)會(huì)自動(dòng)加載這個(gè)技能知道應(yīng)該調(diào)用哪些命令、怎么解析報(bào)告、怎么安全地修改樣式文件。你可以把 skill 理解成“教 AI 使用 ponytail 的說明書”而說明書背后仍然是那套 CLI 在干活。這兩種形態(tài)并不互斥。我實(shí)際使用時(shí)的做法是本地先裝好 CLI把配置寫好、規(guī)則調(diào)好然后在 AI 助手的工作區(qū)里放一份對(duì)應(yīng)版本的 skill 文件。這樣如果需要 AI 幫忙批量處理樣式它就能按照我給它的操作流程去調(diào)用 CLI、讀懂結(jié)果而不是憑空猜測(cè)該怎么清理。1.3 適用場(chǎng)景與不適合的場(chǎng)景先說它擅長(zhǎng)的場(chǎng)景。第一類是多年沒敢大動(dòng)的業(yè)務(wù)項(xiàng)目樣式文件成百上千行注釋里寫著“此處不要?jiǎng)h線上正在用”但沒人知道到底哪部分在用這時(shí)候 ponytail 能給出基于代碼引用關(guān)系的客觀判斷。第二類是重構(gòu)前的摸底比如準(zhǔn)備把老項(xiàng)目從 jQuery 遷移到 Vue或者準(zhǔn)備引入 Tailwind你需要在動(dòng)手前知道現(xiàn)有樣式體系里哪些是可以放棄的哪些是必須保留的。第三類是 CI 卡點(diǎn)要求在合并請(qǐng)求前把冗余樣式比例控制在一定閾值以內(nèi)ponytail 可以無縫接進(jìn)流水線。但它也有明顯不適合的場(chǎng)景。如果你的項(xiàng)目是純組件庫每一個(gè)樣式類都直接對(duì)應(yīng)組件 API而且已經(jīng)有完善的單元測(cè)試那么用 stylelint 或者 TypeScript 類型檢查可能更直接ponytail 的“掃描引用”反而會(huì)因組件動(dòng)態(tài)用法太多而誤報(bào)。如果你用了 CSS-in-JS比如 styled-components樣式不是以獨(dú)立文件存在的ponytail 也基本派不上用場(chǎng)因?yàn)樗瞄L(zhǎng)的是靜態(tài)文件層面的分析。所以選擇工具之前先對(duì)號(hào)入座有歷史包袱、有靜態(tài)樣式文件、有模板可查這三條都滿足的時(shí)候ponytail 就是那個(gè)能把頭發(fā)扎起來的皮筋。2. 上手前需要理解的核心設(shè)計(jì)2.1 為什么 AST 比正則靠譜我見過不少人第一次拿到 ponytail 的掃描結(jié)果第一反應(yīng)是“這不就是正則匹配嗎”實(shí)際上它底層用的是樣式解析器先把 CSS 轉(zhuǎn)成 AST抽象語法樹再對(duì)模板里的 class 引用做標(biāo)記最后把兩者比對(duì)。簡(jiǎn)單來說AST 是把樣式文件的結(jié)構(gòu)拆成可編程操作的樹形數(shù)據(jù)而不是像正則那樣只看字符層面的匹配。正則方案最大的問題是容易誤傷。比如注釋里寫了一行.old-style {}的示例代碼正則可能就把它當(dāng)成真實(shí)選擇器了又比如字符串里包含.btn-primary正則也會(huì)算作引用。但 AST 方案會(huì)明確區(qū)分注釋、字符串、真正的選擇器節(jié)點(diǎn)不會(huì)把這些干擾項(xiàng)算進(jìn)去。類似“媒體查詢里的嵌套選擇器”“帶偽元素的.btn:hover這種復(fù)合選擇器”在 AST 眼里都能準(zhǔn)確還原結(jié)構(gòu)這是正則想做到卻很難做好的??梢赃@樣理解正則就像拿照妖鏡掃人看到長(zhǎng)得像就喊“妖”AST 則像看身份證一條一條核對(duì)姓名、住址、關(guān)系。前者快但容易誤判后者多花了一點(diǎn)時(shí)間但結(jié)論可靠得多。2.2 三階段流水線scan → report → pruneponytail 的工作方式可以分成三個(gè)階段。第一個(gè)階段是scan掃描。它會(huì)讀取你指定的 CSS/SCSS 源文件同時(shí)掃描匹配的模板文件HTML、Vue、JSX、TSX 等都靠配置里的patterns字段來聲明。這一步輸出的是一份原始分析數(shù)據(jù)標(biāo)記出每個(gè)選擇器被引用的情況、每個(gè)聲明塊的重復(fù)情況。第二個(gè)階段是report生成報(bào)告。scan拿到數(shù)據(jù)后ponytail 會(huì)按規(guī)則整理成一份結(jié)構(gòu)化報(bào)告哪些選擇器從未被引用、哪些選擇器被多次重復(fù)定義、哪些聲明塊是冗余的、每個(gè)文件的冗余體積占比等等。報(bào)告是 JSON 格式的方便導(dǎo)入其他工具或讓 AI 讀取。第三個(gè)階段是prune修剪。報(bào)告確認(rèn)無誤后可以用prune指令執(zhí)行清理比如刪除未被引用的選擇器、合并重復(fù)聲明、簡(jiǎn)化可縮短的選擇器寫法。這一步可以預(yù)演、可以備份、可以輸出 diff防止出現(xiàn)“清理一時(shí)爽上線火葬場(chǎng)”的情況。這個(gè)三階段設(shè)計(jì)最大的好處是“掃描和清理分離”。我可以在上午跑完scan中午把報(bào)告交給同事 review下午再執(zhí)行prune。誰也不想讓一個(gè)工具不經(jīng)確認(rèn)就直接刪代碼分離之后人工判斷的空間就出來了。2.3 配置文件的字段設(shè)計(jì)和安全機(jī)制ponytail 的配置文件默認(rèn)是ponytail.config.js用起來很像eslint.config.js或者prettier.config.js導(dǎo)出一個(gè)對(duì)象就行。我常用的配置項(xiàng)大概有這幾類source要分析樣式文件的位置。patterns要匹配的模板文件支持 glob 語法比如**/*.html、src/**/*.vue。ignore哪些樣式文件完全不參與分析比如第三方庫的覆蓋文件。whitelist白名單選擇器即使沒在模板中找到引用也強(qiáng)制保留通常用于動(dòng)態(tài)拼接類名。dynamicPatterns動(dòng)態(tài)類名模式比如/^is-|^has-|^js-/用來識(shí)別 JS 中拼接出來的類名。output報(bào)告輸出路徑。threshold冗余比例閾值超過該值則讓 CI 失敗。backup是否在修剪前自動(dòng)備份原文件。安全機(jī)制主要靠“先預(yù)演再修改”的默認(rèn)行為。prune命令默認(rèn)不直接改文件必須顯式加上--apply才會(huì)寫入。沒有--apply時(shí)它只輸出一份類似git diff的內(nèi)容。這個(gè)設(shè)計(jì)讓我在團(tuán)隊(duì)里推行時(shí)底氣足了很多畢竟同事最擔(dān)心的就是“這工具會(huì)不會(huì)一跑就把我線上樣式全刪了”。3. 從零開始安裝、配置、跑通第一條掃描3.1 安裝的兩種方式CLI 直裝和 Skill 封裝如果你是第一次接觸我建議先通過 npm 以 CLI 方式安裝快速體驗(yàn)一遍它的完整流程。npm install -D ponytail-cli也可以不裝到項(xiàng)目里直接用 npx 臨時(shí)執(zhí)行npx ponytail-cli --version等對(duì)命令和輸出都熟悉了再考慮把它以 “ponytail skill” 的形式接入 AI 工作流。接入 AI 時(shí)一般要先把 CLI 裝到當(dāng)前項(xiàng)目里然后創(chuàng)建一個(gè)skills/ponytail/SKILL.md文件內(nèi)容大致包括這個(gè) skill 是做什么的負(fù)責(zé)掃描、分析、清理 CSS 樣式冗余??蓤?zhí)行的命令清單比如npx ponytail-cli scan --config ponytail.config.js。輸出的位置和格式比如會(huì)生成ponytail-report.jsonAI 直接讀這個(gè)文件。安全規(guī)則AI 不能跳過 dry-run不能直接執(zhí)行帶--apply的修剪除非用戶明確確認(rèn)。這樣配置好以后當(dāng)你在 AI 對(duì)話框里說“幫我看一下目前樣式里有哪幾個(gè)未使用的類名”AI 會(huì)自動(dòng)加載 skill然后執(zhí)行命令并閱讀報(bào)告。說白了就是你把 ponytail 的操作手冊(cè)塞給了 AIAI 變成會(huì)用工具的操作員而工具本身還是那個(gè) CLI。3.2 最小配置一份能直接用的 ponytail.config.js我習(xí)慣先寫一份最簡(jiǎn)配置跑通流程后再慢慢加規(guī)則。比如這樣一個(gè)項(xiàng)目結(jié)構(gòu)my-project/ ├── src/ │ ├── styles/ │ │ └── global.css │ └── pages/ │ ├── index.html │ └── about.html └── ponytail.config.js配置文件可以這樣寫// ponytail.config.js module.exports { source: [src/**/*.css], patterns: [src/**/*.html], ignore: [], whitelist: [is-active, has-error], dynamicPatterns: [/^js-/], output: ponytail-report.json, backup: true, };這里dynamicPatterns里的/^js-/常見于老項(xiàng)目里這樣的代碼div classjs-modal js-modal--open/div如果 ponytail 只掃描 HTML它確實(shí)能看到j(luò)s-modal--open這個(gè)具體字符串但如果項(xiàng)目里有 JS 負(fù)責(zé)拼接類名比如el.className js-modal flag ? is-open : ;那is-open就不會(huì)出現(xiàn)在任何模板文件里這時(shí)候白名單whitelist或者dynamicPatterns就起到了保命作用。3.3 第一次實(shí)操掃描一個(gè)老項(xiàng)目并讀懂報(bào)告配置文件寫好后運(yùn)行npx ponytail-cli scan命令執(zhí)行完控制臺(tái)會(huì)看到簡(jiǎn)要統(tǒng)計(jì)同時(shí)生成ponytail-report.json。我拿一個(gè)模擬場(chǎng)景來演示假設(shè)global.css中有以下幾個(gè)類.header { background: #fff; } .header__logo { width: 120px; } .is-active { color: red; } .unused-box { padding: 20px; } .js-modal { display: none; }index.html里實(shí)際用到了header classheader img classheader__logo srclogo.png altlogo /header對(duì)應(yīng)的 JSON 報(bào)告會(huì)是這樣我簡(jiǎn)化了部分字段{ files: { src/styles/global.css: { totalRules: 5, unusedSelectors: [.unused-box], usedSelectors: [.header, .header__logo, .is-active, .js-modal], redundantBytes: 28, redundantRatio: 0.18 } }, summary: { totalFiles: 1, totalRedundantBytes: 28, totalRedundantRatio: 0.18 } }注意這里的.is-active和.js-modal雖然沒在index.html里出現(xiàn)但它們命中了我配置里的whitelist和dynamicPatterns所以被標(biāo)記為已使用。.unused-box則確認(rèn)是未使用狀態(tài)可以直接進(jìn)入清理流程。第一次看到報(bào)告時(shí)別急著執(zhí)行清理。先檢查幾個(gè)地方第一有沒有你以為在用、但實(shí)際上完全沒被引用的類名這類往往是活動(dòng)頁遺留第二有沒有動(dòng)態(tài)拼接類的模式?jīng)]配全這類需要加到whitelist第三有沒有第三方庫的樣式被錯(cuò)誤地當(dāng)成了項(xiàng)目自己的樣式這類需要移入ignore。4. 核心實(shí)操如何安全地清理樣式4.1 用 dry-run 預(yù)演讓修改可見、可控清理是對(duì)代碼動(dòng)手最忌諱的是悶頭直接改。ponytail 的prune命令默認(rèn)就是 dry-run意思是它會(huì)算出該怎么改但不動(dòng)文件。npx ponytail-cli prune執(zhí)行后輸出會(huì)類似git diff清清楚楚地顯示哪些選擇器要被刪掉、哪些聲明塊會(huì)被合并。比如上面的.unused-box預(yù)期輸出是- .unused-box { - padding: 20px; - }確認(rèn)無誤后再真正應(yīng)用修改npx ponytail-cli prune --apply如果你開了backup: true運(yùn)行前會(huì)生成一份帶時(shí)間戳的備份文件比如global.css.20240612-153000.bak。我強(qiáng)烈建議不要關(guān)掉這個(gè)備份尤其是首次在大項(xiàng)目上操作時(shí)。即使報(bào)告看起來再準(zhǔn)確也難免有業(yè)務(wù)邏輯里的黑魔法多個(gè)備份就是多一條后悔路。4.2 自動(dòng)簡(jiǎn)化選擇器與合并重復(fù)聲明清理不只是“刪未使用的樣式”它還包含兩個(gè)很實(shí)用的能力簡(jiǎn)化選擇器和合并重復(fù)聲明。所謂簡(jiǎn)化選擇器典型場(chǎng)景是這樣.header .header .header__logo { width: 120px; }如果項(xiàng)目里不存在嵌套層級(jí)這個(gè)第三層.header就是冗余的ponytail 可以把它簡(jiǎn)化為.header__logo { width: 120px; }這個(gè)能力用 AST 算起來比較穩(wěn)因?yàn)樗鼤?huì)就地分析層級(jí)是否真的重復(fù)不是無腦刪選擇器。還有一類是重復(fù)聲明合并.card { margin: 16px; } .card { padding: 8px; }這兩條規(guī)則完全可以合到一條里.card { margin: 16px; padding: 8px; }重復(fù)聲明合并能減少文件體積也能讓后續(xù)維護(hù)的人一眼看清某類名下到底掛了多少屬性。尤其在老項(xiàng)目里同一種類名在三個(gè)地方各寫一半屬性是常態(tài)合并以后簡(jiǎn)直像打開了“亂發(fā)打結(jié)處”。清理結(jié)束后可以再跑一次scan看對(duì)比數(shù)據(jù)。上面的示例項(xiàng)目本來冗余比例是 18%清理后會(huì)變成 0%。實(shí)際項(xiàng)目可能不會(huì)一次清零但每輪迭代后那份報(bào)告會(huì)變成你和同事溝通的好依據(jù)。4.3 對(duì)接 AI 工作流ponytail skill 的提示詞設(shè)計(jì)如果你已經(jīng)安裝好 CLI也配置好了 skill 文件真正讓 AI 跑起來其實(shí)只需要一段很自然的對(duì)話。比如幫我看一下src/styles/global.css里有哪些未使用的樣式先掃描并輸出報(bào)告不要?jiǎng)h除任何東西。AI 在后臺(tái)會(huì)加載 ponytail skill執(zhí)行類似這樣的命令npx ponytail-cli scan --config ponytail.config.js然后讀取生成的 JSON用自然語言總結(jié)給你。等你確認(rèn)“可以清理”之后再說根據(jù)剛才的報(bào)告執(zhí)行清理但先不要應(yīng)用修改只給我看 diff。這就會(huì)調(diào)用npx ponytail-cli prune最后你看到 diff 沒問題再說“應(yīng)用修改”AI 再執(zhí)行npx ponytail-cli prune --apply這個(gè)“AI 只負(fù)責(zé)調(diào)用和總結(jié)、你負(fù)責(zé)最終確認(rèn)”的模式是我覺得最穩(wěn)妥的用法。因?yàn)?AI 的能力長(zhǎng)處是理解上下文和生成操作但對(duì)每一個(gè)線上項(xiàng)目的業(yè)務(wù)邏輯并不真正了解。真正了解的是你所以最終確認(rèn)權(quán)必須留給自己。5. 常見問題與排查技巧實(shí)錄5.1 動(dòng)態(tài)類名導(dǎo)致誤報(bào)最常見的誤報(bào)場(chǎng)景就是動(dòng)態(tài)類名。很多現(xiàn)代前端項(xiàng)目不會(huì)把所有類名都寫死在模板里而是通過狀態(tài)控制拼接比如is-開頭的狀態(tài)類、has-開頭的存在類甚至還有col-${n}這種循環(huán)生成的柵格類。如果 ponytail 報(bào)告里出現(xiàn)了“誤報(bào)”先別急著把選擇器加入白名單。先檢查項(xiàng)目里有沒有下面的寫法className{btn ${isLoading ? is-loading : }}這種情況下is-loading在模板文件里確實(shí)沒有字符串出現(xiàn)但它是真實(shí)會(huì)生效的。解決辦法有兩個(gè)方向一是把這類模式補(bǔ)進(jìn)dynamicPatterns比如用正則/^is-/、/^has-/二是如果你知道所有可能的取值直接寫進(jìn)whitelist。我更推薦在項(xiàng)目初期就把動(dòng)態(tài)類名的規(guī)則收集齊。因?yàn)橐坏┣謇韴?bào)告被誤報(bào)污染真正冗余的樣式會(huì)被埋沒在一堆假信號(hào)里工具的可信度就大打折扣。5.2 框架 scoped 樣式和 CSS Modules 的處理Vue 的 scoped 樣式、CSS Modules 這類技術(shù)會(huì)讓選擇器帶上特殊標(biāo)記比如.header[data-v-xxxx]、.footer_abc123__box。ponytail 默認(rèn)對(duì)標(biāo)準(zhǔn) CSS 的 AST 解析是沒問題的但你需要額外注意模板引用的匹配方式。以 Vue 為例要在patterns里加上.vue文件patterns: [src/**/*.vue],同時(shí)如果組件里寫了非 scoped 的:global()規(guī)則而這些規(guī)則可能被其他組件引用你需要把對(duì)應(yīng)類名納入白名單因?yàn)橹粧呙鑶蝹€(gè)組件文件時(shí)ponytail 是看不到全局引用的。在處理 CSS Modules 時(shí)類名經(jīng)過編譯后會(huì)變成哈希值ponytail 掃描源碼是無法直接對(duì)應(yīng)上的。我的建議是讓掃描器匹配源碼里寫的最初類名比如.box而不是編譯后的.box_abc123所以你需要確認(rèn)項(xiàng)目里的模板文件使用的是源碼類名。如果項(xiàng)目里同時(shí)存在 scoped 和全局樣式文件建議把 scoped 文件單獨(dú)分組處理不要和全局樣式混在一次source配置里。否則全局掃描會(huì)把 scoped 樣式大量標(biāo)記為未使用造成誤報(bào)。5.3 命令行超時(shí)、內(nèi)存不足和提速技巧樣式文件一旦多起來比如幾千個(gè) CSS 文件和上萬個(gè)模板文件掃描可能遇到兩個(gè)問題內(nèi)存占用高、執(zhí)行時(shí)間長(zhǎng)。內(nèi)存問題通常和 glob patterns 太寬有關(guān)。比如你把node_modules也包含進(jìn)去了那掃描會(huì)卡到懷疑人生。務(wù)必在source和patterns中明確范圍或者用ignore排除ignore: [node_modules/**, dist/**, .next/**],如果項(xiàng)目實(shí)在太大還可以限制并發(fā)分析。ponytail 內(nèi)部是多線程并行解析文件有時(shí)并發(fā)過高反而會(huì)拖垮機(jī)器可以降低并發(fā)數(shù)比如npx ponytail-cli scan --concurrency 4執(zhí)行時(shí)間方面最省事的辦法是分模塊掃描。不要一次性掃描整個(gè)項(xiàng)目的所有 CSS而是按業(yè)務(wù)模塊拆分命令把報(bào)告輸出到不同文件。這樣不僅快而且更容易定位問題哪個(gè)模塊報(bào)告異常就直接看哪個(gè)模塊。我還習(xí)慣在 CI 里給掃描設(shè)置一個(gè)“寬限期”。第一次接入時(shí)先不設(shè)threshold跑一兩周建立基線然后再設(shè)置閾值比如“冗余比例不得超過 5%”。這樣不會(huì)因?yàn)闅v史債務(wù)太厚導(dǎo)致 CI 直接掛掉而是給團(tuán)隊(duì)一個(gè)逐步清理的緩沖空間。5.4 常見的誤刪場(chǎng)景與如何恢復(fù)盡管工具設(shè)計(jì)得再安全執(zhí)行prune --apply后偶爾還是會(huì)出現(xiàn)樣式丟失的情況。比較典型的幾種場(chǎng)景類名和 ID 選擇器同時(shí)存在模板里只引用了 ID但 CSS 里還有基于類名的樣式且這個(gè)類名是其他腳本動(dòng)態(tài)加上的。使用import引入了另一個(gè)文件被引入文件中的樣式在掃描主文件時(shí)沒有被標(biāo)記到。第三方插件在運(yùn)行時(shí)往 DOM 上追加類名不在模板文件里也不在 JS 源碼里完全無法通過靜態(tài)分析發(fā)現(xiàn)。針對(duì)這三種情況我的實(shí)操建議是第一凡是在報(bào)告里標(biāo)記為“未使用”的類名先全局搜索一下源碼包括 JS 文件和 JSON 配置確認(rèn)真的沒有引用再刪第二把import的文件獨(dú)立加入source讓 ponytail 單獨(dú)分析第三給項(xiàng)目里所有第三方插件前綴的類名建一個(gè)固定的whitelist段比如slick-、tab-、swiper-這類直接聲明“凡是這種前綴都保留”。如果已經(jīng)誤刪并推送了代碼不要慌張只要開了backup: true就能從備份文件恢復(fù)。備份文件一般在項(xiàng)目根目錄或源文件同目錄下按時(shí)間戳命名?;謴?fù)以后記得把對(duì)應(yīng)的類名加進(jìn)whitelist避免下次再被誤刪。6. 我實(shí)際使用后的幾點(diǎn)體會(huì)工具再好最終還是看用的人怎么和它相處。我在把 ponytail 接入老項(xiàng)目以后最大的感受是樣式清理這件事終于不再靠“誰膽大誰刪”來推動(dòng)了。以前每次做樣式重構(gòu)都得開一堆瀏覽器標(biāo)簽頁反復(fù)比對(duì)小心翼翼注釋掉一塊樣式再刷新看效果效率低不說還容易漏?,F(xiàn)在有了報(bào)告和數(shù)據(jù)團(tuán)隊(duì)里討論“這個(gè)類能不能刪”時(shí)可以直接把掃描記錄貼出來省掉很多無效爭(zhēng)論。同時(shí)我也想說不要把 ponytail 的報(bào)告當(dāng)成絕對(duì)真理。靜態(tài)分析能發(fā)現(xiàn)的是“在當(dāng)前代碼庫里存在或不存在引用”但業(yè)務(wù)系統(tǒng)里總有動(dòng)態(tài)加載、第三方腳本、線上配置這些它看不見的部分。它的價(jià)值是幫你把 90% 的確定性冗余挑出來剩下 10% 的不確定項(xiàng)還是需要人來做最終判斷。我給自己定的規(guī)矩是凡是要?jiǎng)h的類名先看報(bào)告再全局搜一遍最后在測(cè)試環(huán)境過一遍相關(guān)頁面。這套流程下來我使用期間基本沒有出現(xiàn)過線上樣式事故。如果后續(xù)你還想繼續(xù)擴(kuò)展可以試試把 ponytail 和覆蓋率統(tǒng)計(jì)結(jié)合起來定期掃描報(bào)告里的冗余比例趨勢(shì)看看團(tuán)隊(duì)在樣式維護(hù)上是變好了還是變?cè)懔恕?shù)據(jù)不會(huì)說謊樣式文件從 200KB 瘦到 80KB 以后同事再也不敢隨手往全局樣式里塞一個(gè)只服務(wù)于單個(gè)頁面的類名了。這也是我越來越愿意把這套工具分享出去的原因。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
超碰在线91| 国产精品干干干| 污色区网站| 777超碰| 国语国产操逼伊人AV网| 色欲色香天天天综合网www-亚洲综合国| 粉嫩av平台| 超碰国产情侣自拍网| 亚洲欧洲av影音| 偷窥自拍亚洲天堂网爆| 人人操人人操人妻人| 天堂蜜桃无码视频一区二区| 日本操逼视频不卡直接放| h色99999| 男人的天堂啪啪| 97精品久久| 成人在线视频一区| 人妻在线中出视频| 丁香五月社区| 国产亚洲精品农村妇女| 亚洲国产97| 深夜国产福利| 国产乱子伦一区二区三区免看| 日韩人妻无码专区| 欧美一区二区观看在线| 亚洲欧美另类图片| 91岛国动作片| 操久久久久| 亚洲综合在线高清| 欧亚免费视频| 国产强奸乱伦欧美| 亚洲第二页| www四虎| 国产成人在线观看综合| 久久国内| 国产亚洲禁久一区二区| 国产一区免费午夜视频| 中文字幕一区二区三区四五区| 麻豆60秒| 91色艳| 日本一级黄色电影| 2020国产精品| 国产精品呦一区二区三区| 操b在线观看| 久久 精品| 日韩欧视频| 天天做天天爱| 飘花国产午夜精品不卡| 色婷久久| 欧美人妻二区三区| 多乙久久久久久| 另类小说综合网| 国产欧美日韩一区二区三区| 17c嫩草51久久91嫩草| 国产呦精品系列在线观看| 无码动漫av中文字幕| 中国一级操逼视频| 成人性爱免费播放| 日韩 国产 欧美自拍| 免费成人自拍视频在线| 懂色Av| 自拍偷拍草一草| 99re在线| 1区2区3区视频| 精品亚洲天堂| 嫩呦国产一区二区三区AV| 欧美夜夜草视频| 久久久久久一日韩字幕无码| 99久久婷婷国产综合精品草原| 国产一级作爱毛片| 51一区二区三区| 91人妻Pr| 亚洲综合影片| 色天欧美| 熟女露脸激情自拍视频| 人人摸人人舔一区二区| 97在线日韩中文字幕| 呦女网站| 日韩中文字幕视频在线观看| 麻豆天美电影一区二区| 久久↗↗| 操一区| 蜜臀中文无码午夜| 国产亚洲性生活视频播放| 久久精品国产72国产精品福利 | 九九久久精品| 亚洲性猛| 秋霞操逼片| 懂色中文一区二区三区| 九九久久综合| 夜夜操一区二区| 青青草原香蕉日本Ap| 色九久| 国产精品自拍欧美在线| 人妻加勒比东京热| 天天操熟妇| 国产传媒一区二区三区| www久久99| 国产乱弄免费在线视频。| 中文字幕女同在线| 秋霞蝌科网日本一区| 97bbn| 亚洲成人在线高清| 大稥蕉免费视频这里只有精品| 亚州国产精品乱| 久久综合av| 免费A片三p视频| 97在线国产精品| 日本 情色 1区| 亚洲黄色影视| 久久日韩肥臀| www激情| 国产自偷| 日本午夜久久电影| 亚州大图综合色图| 色九九九综合| 亚洲欧美内射| AV和黑人在线播放| 啊嗯嗯啊好大好爽| 超碰在线欧美性爱激情| 97视频在线观看高清资源| 国产风韵犹存熟妇三区| 91高清无码下载| www.四虎在线| 天天草夜夜草高潮片| 久久有碼| 97在线精品| 日本幼女18+| 欧美激情综合| 国产熟女完整版中字| 久久久久久久9最新免费视频观看| 欧美激情另类一区二区| 欧美精品三区| 亚洲日韩成人性爱视频| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 9999九九九久久久| 极品五月天噜噜| 欧美极品| 一本道综合色图| 夜夜夜夜久久久久| 少妇内射视频| www.色五月| 成人青青草原伊人| 熟女欧美日韩综合婷婷| 一区二区三区成人| 亚洲一级特黄大片在线播放91| 日本天天干天天日一区| 伊人久久国产免费观看视频| 大香蕉线| 色婷婷视频| 大香蕉中文| 日韩AV一区二区三区三州三州| 天天躁日日躁成人字幕aⅴ| 美女诱惑在线一区| 婷婷五月天成人网| av无码精品久久久久| 中文字幕色AV| 高清国产无码av| 亚洲成人av电影在线| 欧美国产成人在线| 日韩一级片| 中国人高清www色视频免费| 精品无吗久久| 看一级黄色视频| 性夜影院爽黄A爽免费动漫| 1区2区3区中文字幕日韩| av日韩手机在线影视| 男女国产精品| 精品国产乱码久久久久久影片| 天堂v无码免费视频| 狠肏骚人妻| 久久 国产精品 一区| 久久久久亚洲| 黄色工厂这里只有精品| 91爱看| 亚洲成人碰碰| 九九九九热| 精品无码一区二区三区| 亚洲熟女一区二区| 亚洲人精品久久久| 国产精品色| 久久超碰、| 岛国大片国产| 欧美精品三级黄片| 美女啊啊啊啊啊啊| 亚洲综合色在线| 国产传媒一区日韩| 超碰性爱97| 五月天婷婷欧美三区| 一牛影视成人片免费| 精品一区二区成人| 67914在线精品观看| 日韩激情啪啪| 亚洲黄色网址视频| 国产一区免费午夜视频| 日本人妻丰满熟妇久久久久久| 中文字幕丝袜| 欧美大的香蕉有线电视视频| 女人天堂网| 日韩美女高潮喷水视频| av午夜玫瑰| 热久久精品| 97干日韩| 玖玖爱在线视频免费观看| 色翁荡息又大又硬又粗又爽| 97网色| 国产精品日日摸天天碰| 正宗无毛一线天嫩逼| 丝袜天堂网| 精品二999| 精品二999| 人人爱人人乐人人操| 天天伊人| 日韩一级久久毛片| 尤物网址| 秋霞一级视频在线观看免费| 综合激情五月丁香| 99热色这里只有精品| 日婷婷| 亚洲av性爱电影| 亚洲婷婷综合网| 五十路六十路素人熟女| 老熟女乱子伦中文字幕一区二区| 亚洲成?V人片在线观看福利| 思思热免费视频观看| 色综合尤物| 丁香六月婷婷综合| 夜夜爽妓女| 久久久久久中文版| 免费看污网址| 欧美,日韩,中文,另类| 97日亚洲欧美| 九九精品无码专区免费| 91动漫操逼视频| 狠狠干狠狠干| 涩涩五月天| 97国产精品国| 日韩欧美成人大香蕉| 无码人妻一区二区一牛影视| 欧洲精品人妻| 日韩大香蕉AV影片| 亚洲色图欧美色图日韩色图| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | av草草在线电影| 亚洲97资源| 欧美超碰97| 操操逼操操逼操操逼逼| 亚洲精品97在线| 少妇三P| 国产精品久久久久999| 日本 情色 1区| 日韩熟女无码| 99热99在线| 欧美视频激情久久久久久| 欧美综合狠| 久久国产AⅤ| 大香蕉啪啪网| 9999久久久久| 中文字幕日韩电影人妻| 九九热AV| 国产精彩女在线观看视频| 亚洲熟女综合一区二区| 国产麻豆一级精品视频| 久草精品国产蜜臀 | 亚洲第一精品在线视频| 少妇一线天久久久久久| 国产97/欧美| 中文色综合| www.狠狠干.coom| 久久精品99| 中文字幕日韩电影人妻| 夜夜操夜夜爽夜夜高潮| 禁止观看美女黄| 97色色婷婷| 一级aaaaa欧美中文字幕录像片| 国产美女mm131爽爽爽爽| 天天影视综合网欧美精品| 久久久男人的天堂| 久久久久久久九九九九九九| 久视频在线观看| 丰满欧美放荡少妇在线| 亚洲一级性爱视频免费看| 欧美性天天影视| 欧美激情精品久久久久久| 亚瑟国产精品久久无码| 伊人久久大香蕉线AV五月天| 欧美精品精品一区二区| 蜜桃久久久久久久| 91九九| 五月色丁香| 噜噜瑟| 亚洲欧美国产其他二区| 激情小说亚洲视频| 国产男人又猛又粗又爽| 乱码人妻一区二区三区| 永久免费发布性爱网| 欧美色图下一页| 国产午夜精品理论片a大结局| 日本天天色| 亚洲性高潮| 中文字幕 码精品视频网站| 久久久久久无码人妻中文字幕| 性久久| 久久久久久9999| 99老司机精品视频在线观看| 素颜老阿姨乱情色| 日韩性爱电影一区| 精品玖九九久| 精品人妻二区三区| 日韩操p| 97在线青| 亚洲精品日日夜夜52| 97伊人超碰| 五月丁香色色网| 日本媚薬中文字幕在线| 亚洲城人男人的天堂| 亚洲无码偷拍| 锕锕好爽 死我在线观看| 久久人人舔人人爽舔人人av片| 久草久日| 国产自产91区13区| 1024人妻熟女一区二区三区| 风间由美日韩欧美久久| 国产九九久久久精品| 思思热在线视频在线| 日韩丝袜高跟制服在线观看| 91精品丝袜久久久久久| 91在线视频国产网站| 久久久久久中文版| 99热综合| 中国国产精品一区视频| 丰满人妻-区二区三区| 久久婷婷在线观看视频| 这里都是精品在线观看| 人人操 欧美| 久久久国产护士丝袜美腿一| 欧美爆操91| 国产在线精品偷| 在线观看中文字幕| 少妇精品久久久八区九区| 玖玖视频在线资源一区二区三区| 亚洲天堂人妻熟妇视频| 欧美亚洲自拍另类人妻| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 蜜桃狠狠色伊人亚洲综合 | 中文字幕123| 91精品91久久久久77777俄罗斯老妇姓x| 青娱乐大香蕉| 爱爱动态120秒| 欧美一级久久久久久久大片动画| 躁躁躁日日躁2020| 97av,com| 久久欧洲| 欧美精品第四五页中文字幕在线观看| 丁香婷婷久久| 强奸乱伦av电影| 欧美夜夜草视频| 78m啪啪啪| 亚洲污污网站| 屌妞视频久久久久久久久久久久| 香蕉在线一区二区三区| 日本女人操逼| 国产精品蜜乳AV| 人妻一区二区三区视频| 国产 日韩 欧美一区| 亚洲丨在线| 国产自产22区| 日韩欧美~中文字| 午夜福利在线视频1000| 色大师网站www永久网站视频| 久久婷婷五月天| 另类一区| 性爱1区| 国产精品婬乱一级毛片彝族| 女人 A一级| 日韩精品在线观看观看| A一区片| 91丨国产丨白浆秘 洗澡动漫| 91欧美www| 欧美成97爱| 国产成人五月天丁香花| 国产精品久久泡妞网站| 97久久超碰日韩精品| 亚洲欧美国产精品久久久久久久| 午夜精品久久久99热蜜桃的功能特点| 精品九九九九九九九九九| 欧美精品偷拍| 久久中文字幕女同性恋一区| 偷拍亚洲情色| 竹菊一区二区三区AV线| 青青草久草| 99热这里只有精品18| 欲香欲色| 免费久久一级毛片大黄| xxxx网站亚洲精品| 国产AV毛片| 大香蕉免费乱伦视频| 凹凸视频在线观看伊人| 久久久成人国产精品无码| 黄色免费网页无码| 大香蕉520| 日韩精品一区二区三区四虎影视| 内射日韩大臀美女| 伊人伊人LD| 夜夜操夜夜高潮夜夜爽国产精品区| 精彩久久中文| 欧美激情1区| 日韩兔费看黄片| 69国产对白刺激| 看大黄色大片原件| www五月| 国产精品久久发布| 亭亭在线资源| 啊啊啊啊啊啊在线| 日韩熟女操逼| 国产乱伦一二三区| 十八禁网站在线| 欧美第二页午夜| 日韩九九九| 四虎午夜影院| 精品婷婷| 久久有碼| 97久久国产精品女不卡| 久久精品日韩| 五月天伊人| 精产国品一区二三产品| 国产精品午夜福利| 涩涩涩综合| 综合婷婷| 亚州Av天美传媒| 欧美色图色综合| 户外裸露刺激视频第一区| 日韩欧美女优电影| 丰满熟妇大乳做爰| 污污汅18禁网站在线永久免费观看| 亚洲九区| #NAME?| 丁香七月婷婷| 99啪啪| 美日韩一二三区| 国产精品96| 强奸乱伦αv片| 97青娱乐超碰久久| 9丨久久九九九| 国产女人与拘做受视频免费| 97综合日韩| 97国产精品一区| 5278欧美一区二区三区| 亚洲熟久久| 人妻一区二区三区四区视频| www久久99| 91色堂| 国产隔壁老王影院在线| wwe 天天干.com| 成年人黄色| 久久精品99| 亚洲人精品午夜不卡| 一区二区三区高清天码| 秋霞男人网| 一级性爱网| 国产一区二区三区中文字幕| 人妻娇喘 激情视频| 99久久久无码国产精品性男| 亚洲综合一| 国产欧美精选激情视频| 情侣操 逼视频99| 99这里只有精品国产| 精品国产一区二区久久| 亚洲熟伦熟妇AV无码春色| 超碰97欧美在线| 色逼综合| 国产精品视频电影| 亚洲日韩精品久久久久一区壹牛 | 丰满人妻区一区二区三| 熟女丰满人妻一区| 黄色免费网| 欧美天天谢综合网| 久久透逼视频| 亚洲成人色情五月天丁香花| 午夜电影在线观看无码专区| 超碰在线1234区| 一起草精品人妻| 综合五月天| 国产一区96在线| 人人摸人人入| 和协影院中文字幕三区| 亚洲一区二区三区AV无码| 日本天堂在线播放| 色色操| 熟女探花啪啪| 搞中出视频在线观看| 国产亚洲中文不卡二区| 日韩有码回春沙龙第一页| 中文字幕在线高清男人的天堂| 久久三区四区| 欧美性爱一内片一区二区三区| 国内毛片国产欧美拍| 久久久久久久久久久久九| 激情接吻视频久久久久久| 噜噜噜噜天天狠狠| 亭亭丁香激情| 插日本熟女视频| 麻豆91熟妇人妻中文字幕茄子| 久久天天摸| 亚洲精品天堂久久A∨51成人漫| 亚洲中文字幕久久无码精品| 观看免费区二区三区二| 亚洲暴力强奸AV| 大香蕉伊人75| 操死我了嗯嗯嗯| 强奸a片网| 91看黄片| 欧美激情 亚洲色图| 欧洲射精91| 国产无套粉嫩白浆在| 玖草在线视频| 久久久精品九| 中文字幕久久精视频久久大全| 精品国产www久久| 91春色| 欧美日韩系列| 99热导航| 伊人97超碰| 粉嫩不卡一区二区性爱| 一道α片欧美| 夜夜精品视频| 欧美天天影院| 日韩资源网| 精品无码久久久| 色999五月色| 亚洲字幕一区二区| 在线日韩日本亚洲国产| 91观看 国产白丝| 欧美熟女丝袜| 99RE在线视频精品,这里只有精品| 五月婷在线| 草莓精品视频| 亚洲第2页| 国产高清26uuu| 午夜啪| 九热中文字幕| 91人人操| 搡老女人老91二区| 超碰97日韩| 偷拍99| 国产精品粉嫩福利在线| 亚州熟妇精品| 色爽——AV| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 免费一级黄色录像影片| 欧美精品23| 蜜乳中文字幕a在线| 九九九九精品视频| 97超碰9| 久久高潮妇女视频| 欧美色图第一页| juliaann丝袜| 日韩三级伊人| 秋霞网无码| 亚洲中文字幕精品一区| 国产亚洲日韩欧| 国产午夜福利专区综合| 国产精品永久免费10000| 日韩强奸av| 欧美A片中文字幕| 免费av在线播放二区| 精品国产91内射久久| 人人干黄色| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 亚洲成av人片色午夜乱码| 国产一区在线免费播放| 国产精品视频精品一二| 丁香五月激情综合| 97色在线观看| 精品人妻一区二区三区视频| 97超碰中文字幕| 亚洲一区中文字幕| 中文操逼字幕| 午夜啪啪片| aⅴ日韩成人电影av在线免费看av大全 | 一区二区三区精品视频| 婷婷午夜| 亚洲色9| 伊人四虎综合| 久久人| 日韩黄片视频试看| 免费一级欧美片片线观看| 人人摸人人干| 欧美日韩国产电影| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 人人操,操人人| 天天操天天插| 极品后入免费视频| 97se亚洲综合自| 无码人妻一区二区三区色欲aⅴ| 精品亚洲国产成人精品| 亚洲天堂,男人| 97在线青| 91中文字幕| 粉嫩粉嫩一区性色AV片| 精品国产乱码久久久久久久久1| 伊蕉97蜜桃97狠狠综合干| 天天天做天天天爱天天天爽| 精品欧美不卡在线播放| 亚洲成人久久美女| 91美女视频在线| 日比av无码| av在线不卡一区二区三区| 日日干夜夜干| 国产视频小说| 免费国产电影一区二区| www久| 久久99草| A片大香蕉在线| 日本99久久| 欧美传媒一区| 性爱综合一区二区| 欧美综合站| 国内外毛片在线观看| 中文字幕五月婷婷免费| 色av中文字| 精品少妇一区二区| 日韩一级成人毛片免费观看 | 青青草中文字幕| 国产懂色精品国产av| 亚洲免费97免费| 日本506070| 午夜丁香婷婷| 国产精品夜夜夜| 欧美成人A天堂片在线观看| 九九热免费国产视频婷婷伊人五月 | 91伊人| 九九av| nuu12国产麻豆精品| 日韩精品在线观看观看| 日夜久久久九九九久| 国产在线播放成人免费| 2020中文字幕| 欧美97超碰| 婷婷五月天在线观看| 亚洲天堂久久| 久碰视频| 丰满人妻一区二区三区免费 | 激情小说亚洲色图| 亚洲成人av色网| 欧美劲爆第一页| 丁香五月AV| 亚洲人综合19| 97舔舔| 久操精品| 后入人妻一区| 亚洲精品白浆高清久久久久久| 蜜桃精品一区二区三区ww| 亚洲成人激情小说视频| 免费农村成人少妇人妻Aa一区二区视频| 人人妻人人玩人人澡人人爽| 91精品电影18| 无码直播久久久| 人妻免费观看| 亚欧国产无码精品在线| 殴美色网| 久久国色天香香蕉| 国产av激情无码久久天堂| 久久久18禁| 日韩不卡在线一区二区| 欧美午夜熟妇黑人精品91| 男人的天堂2010| 在线a亚洲视频播放在线| 99操| 强奸乱伦αv片| 日韩精品午夜操呦呦不卡影院| 亚州情色j区| 人人看人人插| chaopen97久久| 9久超碰| 久久久久亚洲三级电影| 欧美青青草视频| 午夜大香蕉| 家庭乱伦国产精品| 国产av色网| 男女打扑克高清网站| 很黄很色的视频在线观看| aV中文麻| 一区 欧美 日韩 麻豆| 久久人人舔人人爽舔人人av片| 丝袜美腿操av| 在线 亚洲 网爆 自拍| caoni国产亚洲av| 男人的天堂va| 色踪合AV| 九九九久千久久激情蜜桃在线看 | 久久国模av| 婷婷五月天色色| 精品久久久久久AV无码| 超碰吊日色| 久9久9精品| 人妻啊啊人妻啊| 天天干人人干天天日97| 97天天日| 蜜桃AV天堂| 亚州久久9| 视频二区美腿丝袜制服人妻欧美 | 久久久久人| 97这里都是精品| 少妇超碰在线| 日韩av一级黄片| 免费观看网黄| 九久9精品| 青青草好吊| 天天插夜夜爽| 久艹伊人精品综合在线| 95人妻爽爽人人做人人澡| 亚一综合久久久久久久久久| 操国产逼| 99re免费| 97亚洲精品超碰| 91天天美女| 亚洲drav色图| 1204av韩国| 久久精品亚洲东京热色播| 久久精彩免费视频| 乱伦熟女区| 亚洲一卡2卡3卡4卡乱码网站| 秋霞一级鲁丝片A片| 青青草国产欧美非洲黑人| 97人人爱人人乐| 尤物AV免费网站| 啊啊啊啊在线播放| 亚洲熟女乱色一区二区三区久久久| 熟妇高潮一区二区免费视频| 啊啊啊啊嗯嗯嗯用力好爽| · —级AA伦aa坐爱午夜极速ⅴA一区天天噪天天噪天天噪 | 精品天堂| 久久人妻熟女一区二区| 麻豆熟妇乱妇熟色A片在线看| 亚洲图片偷拍欧美| 亚洲青青草| 亚洲文学偷乱拍啪啪啪啪| 日韩操呦呦影院在线观看| 台湾肥佬网一区二区三区| 大香蕉伊人网WWWn0n| 国产乱码久久| 91是天天| 一区中文字幕二区日韩| 欧日a| 国产无码高清操逼视频| juliaann丝袜大战黑鬼| 日美免费黄片| 在线免费观看日韩一区| 欧州一区二区三区四区| 一级做受视频免费是看美女| 亚洲不卡三级手机播放| 水多多映视AV| 视频一区二区免费在线| 精品无码久久久久久久杏吧| 亚洲AV无码秘 蜜桃臀国精产品| 中国人高清www色视频免费| 欧美色综合| 一道α片欧美| 亚洲国产成人福利在线观看| 色综合av男人天堂| 我要看免费韩日黄片| 久久久久免费少妇| 嗯嗯啊啊用力视频免费| 蜜臀99999| 玖玖超碰熟| 97网色| 国内亚洲高清无码| www.99中文字幕| 三级片网站在线播放| 一道本久久棕合爱| 久久99999| 97欧美日韩精品| 国产精品久久久啊| 亚洲导航深夜福利| 婷婷综合| 区一二区日韩亚洲乱码av电影| 九九国产热| 久久久久久久久久久久97| 国产黄色剧情影片麻豆免费播放| 无码丰满熟妇一区二区浪潮AV| 岛园激情| 97大色网| 超碰97日韩| 日韩性爱视频在线免费观看 | 欧美乱妇狂野欧美在线视频| 干美女人妻| 一中国女人毛片水真多| 久久精品国产72国产精品福利| 欧美色棕合| 久久亚码| V A在线| 亚洲一区二区三区AV无码| 一区二区三区精品黑丝白丝酒店对鸡| 久久久久久久久久久久黄色 | 91精品国产日韩欧美综合| 欧美日韩成人| 鸥美极品| 亚洲无码精品AV久久久| 欧美顶级黄片AAAAA在线免费看| 亚洲精品一二三四区| 日日97| 成人性爱视频在线看| 中文字幕91综合| 91久久国产精品| 成人 日本A片无码8888| 色五月69夫妻| 熟女人妻一区二区三区| 一个人免费HD91视频| 97视频620| 中文字幕欧美日韩三级| 操99| 日韩在线观看AV| 色成人Www精品永久观看| 国产视频一区二区三区久久亚洲天堂| 亚洲欧美激情小说| 色婷婷视频| 樱花草社区www中国| 超碰在线一区| 日本福利社| 色网亚洲人| 国产92麻豆天美精品色欲5| 91九九九小逼| 黄色片A级一区二区三区| 97人妻色| 亲子敌伦对白在线播放| 在线 制服丝袜中出 人妻| 网站A V在线| 中亚精品极乱| 97视频免费播放| 成片免费观看视频大全| 果冻传媒A片一二三区 | 亚洲欧美日韩电影网站一区| 国产成人拍国产亚洲精品| 欧美精品在线观看| 国产内射爽爽大片| av在线人气| 色欲Av人妻精品一区二| 一区=区三区视频| 国产真实子伦对白| 色 婷97| 看免费的黄片| 欧美日韩亚洲五月天婷婷| 久久国产免费激情视频| 性爱AV天堂| 人人干人人操人人..com| 影音资源男人日韩| 色色婷婷丁香| 亚洲超碰97| 97激情97激情| 26uuu欧美日韩| 97热视频在线观看| 强奸a片网| 国产熟女无套内射| 骚乳在线| 日韩卡一卡二卡三在线| 久久是精品| 99久久久| 国产家庭乱伦表演| 天天综合网~91综合网| 色五月综合| 97色碰| 美欧老女人97| 日韩性爱小视频在线观看| 黑人在线91| 在线 亚洲 网爆 自拍| 国产精品 久久久精品一牛| 欧美中字不卡| 人妻丝袜无 码视频专区| 91欧洲国产成人久久精品网站| 三上制服丝AV| 图片区小说区| 91九九| 是还免费视频1727我| 亚洲经典啪啪| 青娱乐淫乱1314| 秋霞福利网| 日韩啪啪啪啪啪| 色操逼网| 欧美色干| 素颜老阿姨乱情色| 长长久久88视频| 欧美日产国产在线成人第一区| 久久风骚城市人| 人人摸人人干| 国产67194| 日韩欧美大力操| 清纯唯美综合| 999 久久久| 啊啊啊好爽快点啊啊啊嗯嗯| 国产野战露脸在线播放| 国产白丝AV| 激情文学 亚洲图片| 97中文天堂| av国产无码| 26uuu国产亚洲综合| 日日夜夜骑| 青娱乐手机日韩在线视频| 夜夜做夜夜爽精品视频| 欧美 亚洲 大香| 玖玖在线视频| 另类 日韩 熟女| 欧美性爱第一页久久| 精品国产99999| 一区二三区四区视频大全套| 日本三级人妻a人妻一在线| 免费啪啪啪网站18岁| 天堂俺去俺来也www久久婷婷| 日日97| 美女网站黄页| 试看福利| 欧美色图亚洲特色| 久久本道| 女同在线视频一区| 亚洲AV成人在线| 国产亚洲日本精品在线| 欧 美 自 拍 偷 拍| 日韩三级伊人| 九九热九九| 啊啊啊啊嗯嗯在线久久久| 九九av| 殴洲老熟女| 殴美日韩m| 麻豆国产av网| 1024亚洲中文字幕久在线看片你懂的 | 精品大全99999| 日韩无码久久熟女一级片| 亚洲最大的黄色电影网站。 | 2024黄色视频| 试看60秒 爽| 婷婷五月天激情四射| 日韩一级二级三级| 日韩欧美女求操每天更新| 97资源站国产精品| 国产精品日日摸天天碰| 大逼色网站| 夜夜嗨一区二区三区直播内容| 极品出轨视频网站| 老熟女综合网| 超碰97国产欧美| 男人天堂新| 狠狠91| 欧美大波激情xxxx| 97在线精品观看视频| 91精品国产日韩欧美综合| 岛国大片在线观看网站入口| 日本操嫩b网| 亚洲天堂 视频你懂的| 人人扣人人操| 综合五月天| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美 传媒 麻豆 日韩 偷拍| 麻豆九九九| 亚洲自拍一区夜夜操| 91欧美综合在线| 91熟女视频网| 欧美日韩中文字幕人妻| 男女啪啪网站免费视频| 日日插夜夜| 97任你吞精| 五月天色图影视| 五月天春色激情网| 丁香婷婷激情五月天无毒不卡| 无码人妻精品一区二区三区九九| 日日日日做夜夜夜夜做无码97| 青青久草| 国产亚洲色停停久久99精品91| 亚洲国产av中文字幕久久| 亚洲情色中文字幕一区| 91丨九色丨东北熟女| 亚洲人精品久久久喷水| 色香在线| 狠狠爱夜夜| 岛国在线免费视频| 亚洲高清无码免费观看视频| 人夜夜精品网站香蕉嫩草| 九九九九九九成人| 国产精品久久久午夜夜伦鲁鲁| 亚洲欧美另类图片| 国产成人自拍视频视频| 久99热| 91精品丝袜久久久久久无码人妻| 热久久无毒不卡| 狠狠超| 欧日a| 大香蕉伊人亚洲| 青青草女人天天干| 夜夜草天天| 91九色精品熟女内射| 国产乱弄免费在线视频。| 人妻夜爽夜夜爽| 黄片视频,下载| 国产后入精品| 亚洲天堂久| av在线播放国产一区| 大香蕉婷婷| 啊啊啊啊啊啊啊啊啊在线观看| 九九无码| 色5月婷婷| 青草影院内射高潮| 国产一区二区成人av在线播放| 久久99精品视频| 欧洲精品人妻| 欧美不卡五十路| 久久亚洲婷婷| 亚洲图片 激情小说| 亚洲综合九九| 久99视频| 亚洲偷拍欧美激情| 欧美区亚洲区偷拍区| 25国产精品免费观看| 九九九九九九免费视频| 99re热有精品视频国产| 日本有码影片下载| 亚洲高清色综合| 蜜桃无码AV一区二区| 国内97干免费看| 26uuu国产亚洲综合| 亚洲欧美校园另类春色| 校园春色 亚洲| 日韩激情中文字幕有码| 在线亚洲精品久久久| 欧洲黄色网| 大鸡吧尹人在线| 色香综合| 99免费在线视频| 欧美日韩亚洲少妇寂寞影院正在播放| 自拍视频一区在线观看| 佐山爱中文字幕| 亚洲乱码精品一区二区| 粉嫩国产精品久久粉嫩| 国产精品久久久久9999小说| 午夜精品探花| 亚洲图片偷拍欧美| 在线观看精品国产免费| 蜜臀av中文字幕| 日韩人妻中文视频| 97网址97| 在线无码操| 蜜臀在线网站| 操99| 91制服丝袜中文字幕| 2010男人的天堂| 久久久久久9| 天天色欧美| 七久久久| 国产精品ww久久| 久久超碰、| 日韩操逼HD| 韩国嫰模上门援交视频| 欧美一级黄片免费播放| 视频二区美腿制服人妻欧美| 桃色五月天| 91老女人| 东北女人| 操逼逼福利视频| 欧美图片校园春色| 日韩另类色图| 亚洲欧洲av影音| 久久伊人青青草| 日韩欧美俄罗斯A片| 91美女视频。| 麻豆视频test| 久热影视| 加勒比性爱成人在线| 一区二区三区机械有限公司| 中文字幕精品码亚洲| 久久久久中出| 日韩国产乱子伦App| 情色大香蕉| 99久久无色码| 欧美强奸乱能| 亚洲小说视频| 国产午夜福利视频在线| 亚洲av影院在线观看| 青青久久艹| 99色日| 婷婷综合久久| 国产多人在线观看视频| 欧洲一区二区三区四区在线观看| 国产这里只有精品| 免费的黄片有限公司| 欧美美逼| 高潮嗯啊性感美女久久久| 五月婷婷久久综合| 视频一区二区三区精品| 欧美久久人体| 婷婷激情一区二区三区俺也去| 国产亚洲日本精品在线| 欧美91精品国产自产| 中文日韩欧美熟| 国产精品小视频一区二区三区| 精品一区二区成人| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 亚洲综合草草| 白丝AV网站| www五月| 亚洲va有码在线天堂| 国产精品熟女一区二区三区| 嗯嗯啊啊的视频| 曰本精品久久久| 大香蕉啪啪啪| 免费观看的黄色的网站| 国产福利一区二| 青草一区二区| 国产成人啪一区二区| 884t在线| 亚洲熟妇乱女区二区三区| 中文字幕在线高清男人的天堂| 欧美偷拍区| 91日韩| 啪啪啪综合| 懂色av中文字幕| 亚洲性猛交| 青青草视频在线观看一区二区| 六月婷婷综合| 大地资源在线观看中文第二页| 无码人妻精品一区二区中文| 在线视频免费观看午夜| 好涩综合| 97操97干| 超碰在线1234区| 色拍偷亚洲| 精品九九九九九九九九九| 人妻无码后入| 欧洲Au麻豆| yirendaxiangjiashipin| 鲁鲁色综合网| 欧美一级三级| 丁香五月社区| 国产成人网址| 婷婷色五月激情| www.色婷婷色综合| 操我无码| 艹比视频国产精品| 粉嫩粉嫩一区性色AV片| 黄色在线网站| 国产宅男宅女在线观看| 中文字幕精品一区欧美| 国产精品99精品视频网站| 久久精品国产亚洲AV清纯| 搡老女人老91妇女老熟女| 99国产精品| 91在线视频国产网站| 精品视频一区二区| 日本一区不卡| 欧美少妇色图| 亚洲欧美日韩偷拍色图| 久久久久久久人妻丝袜| 欧美极品| 国产精品爆乳懂色蜜乳| 国产美女在线精品免费看| 美国日韩黄片| 久久久一区二区三区三州| 日韩黄色av中文字幕| 爽极品影院| 国产第25页在线观看| 91精品久久综合熟女| 五月天婷婷综合| 久热伊人99re|