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

在字節某中后臺項目中落地 Bundleless,我經歷了什么?

開發 架構
現在前端主流的打包工具主要以 Webpack 為代表,但隨著項目規模的發展,構建方面的痛點越來越突出,最大的感受就是太慢了。

[[422796]]

最近在公司探索落地 Bundless 構建工具,嘗試將現有的一些業務項目 從 Webpack 往 Vite 遷移,由于中后臺項目一般對瀏覽器兼容性要求不高,可以大膽引入一些前沿且激進的方案,因此在公司找到了一個業務中后臺項目初步嘗試引入 Vite。

當然,在遷移的過程中也不是直接使用 Vite,而是在 Vite 上層有做了一層封裝,以接入團隊目前研發的構建工具的架構當中,項目構建配置方面會和原始的 Vite 配置不太一樣。不過這不影響后續的踩坑和原理介紹,我也盡量把現場還原成原始的 Vite 配置,以便大家理解。其中有一些內部工具與業務相關的問題,這些細節就不公之于眾了,還請大家理解。

前言

現在前端主流的打包工具主要以 Webpack 為代表,但隨著項目規模的發展,構建方面的痛點越來越突出,最大的感受就是太慢了,一方面項目冷啟動時必須遞歸打包整個項目的依賴樹,另一方面 JavaScript 語言本身(解釋執行、單線程執行)的限制,導致構建性能遇到瓶頸。

在這樣的背景下,一些被稱為 Bundleless (或者 Unbundled) 的構建工具應運而生,諸如 Snowpack、Vite,其中 Vite 最近在社區的呼聲越來越高,GitHub 上的 star 30k+,甚至已經超過 vue3 倉庫的 star 數(目前 24.1k),可見其影響力之大。

和 Webpack 這種傳統的打包工具相比,Vite 主要有兩大主要優勢:

  1. 利用瀏覽器內置 ES Module 的支持(script 標簽加上屬性 type="module" 即可),瀏覽器直接向 dev server 逐個請求各個模塊,而不需要提前把所有文件打包。
  2. 借助 esbuild 超快的編譯速度把第三方庫進行預構建,一方面將零散的文件打到一起,減少網絡請求,另一方面全面轉換為 ESM 模塊語法,以適配瀏覽器內置的 ESM 支持。

顧名思義,Bundleless 和傳統的構建工具相比,最大的特點就是不用將業務代碼打包(雖然第三方庫還是得打包,這個沒有辦法),尤其是在項目逐漸龐大的時候,可以極大地提升構建效率和開發體驗。經過在公司業務項目的落地,底層從 Webpack 切到 Vite,冷啟動速度提升 400% 以上,原本 20 秒啟動的項目現在 3~4 秒 即可冷啟,并且在依賴沒有變動的情況下,二次啟動直接秒開,不得不感慨:實在是太快了!

遷移問題

SVG 組件報錯

Vite 本身沒有對 svg 組件寫法的支持,在默認情況下,下面的寫法會導致瀏覽器報錯:

  1. import Up from 'common/imgs/up.svg'
  2.  
  3. function Home() { 
  4.   return { 
  5.     <> 
  6.       // 省略其他子組件 
  7.       <Up className="admin-header-user-up" /> 
  8.     </> 
  9.   } 

為了解決這個問題,在社區現有的生態中找到 vite-plugin-react-svg 插件,添加到 Vite 的 plugins數組中,實現了以組件方式引用 SVG 資源的能力,并以下面的方式來引入 svg 文件:

  1. import Up from 'common/imgs/up.svg?component'

第三方包內部 bug

在 esbuild 進行預構建的時候,會檢查到相關第三方包依賴的報錯。本項目中遇到了如下的報錯,關于 react-virtualized 當中 esm 產物出現了問題:

  1. // 在 WindowScroller.js 并沒有導出這個變量! 
  2. import { bpfrpt_proptype_WindowScroller } from "../WindowScroller.js"

在這個庫官方的 GitHub 倉庫中也發現尤大提出了同樣的問題(issue 地址: https://github.com/bvaughn/react-virtualized/issues/1632),里面報錯的這一句引入代碼是有問題的,引入了不存在的變量,但 webpack/rollup 沒有捕獲這個問題,但在 esbuild 當中報錯,總體來說屬于第三方庫產物的 bug。

一般來說,解決 node_modules 中第三方庫的 bug 大概有兩種思路:

第一種思路是將第三方庫中有問題的文件 copy 一份進行修復,放在項目目錄里面(非 node_modules),然后通過構建工具 resolve.alias 能力重定向到修復后的位置。

另一種是通過 patch-package 記錄 node_modules 更改記錄,生成 patches 目錄,然后通過項目的 post-install 腳本在團隊中同步這個更改。

這里采用后者來實現第三方庫的臨時 patch,當然這也適合其他第三方庫問題的臨時修復。

  1. // 1. 安裝 
  2. yarn add patch-package postinstall-postinstall 
  3. // 2. 修改 node_modules 代碼后執行: 
  4. yarn patch-package react-virtualized 
  5. // 3. package.json 中 scripts 增加:  
  6.   "postinstall""patch-package" 

預構建反復執行

如果剛才這點問題只是小打小鬧,那接下來的 bug 簡直就是究極折磨。在做完基本的配置之后,項目的確是能夠正常顯示了,但每次清理緩存重新構建時,在預構建階段會出現如下十分詭異的現象:

  • 控制臺一直顯示 new dependencies xxx 類似的 log,服務頻繁 reload
  • 預構建緩存目錄 .Vite 中會不斷產生新的依賴緩存文件,隨著服務頻繁 reload,不斷清空所有緩存文件,再次產生更多的新依賴,也就是不斷地重刷緩存目錄,過大概 20 多秒才穩定下來。
  • 在預構建不斷重刷目錄的 20 多秒當中,頁面無法訪問,一直處于卡死狀態

放一張事故現場圖各位好好體會一下:

1. 問題定位

首先,拿正常情況下的 demo 項目試了一下,正常的預構建情況是這樣的:

  • 一次性輸出所有的構建緩存文件
  • 終端的 log 也很簡潔,如下圖所示:

根據正常情況下的 log 在 Vite 源碼中全局搜索 Pre-bundling,反向追溯預構建部分的源代碼。總結流程如下:

  • Vite Server 啟動階段,在 server.listen 的回調中執行 runOptimize 邏輯,進入預構建階段。
  • runOptimize 中調用 optimizeDeps,內部調用 esbuild 進行構建, 并往 esbuild 里面傳入自定義的 scan 插件,esbuild 構建過程中進行依賴分析,并將依賴項賦給 deps
  • 拿到 deps 后打印出上述的終端 log,第一次預構建結束。

函數調用流程如下:

  1. startServer -> runOptimize -> optimizeDeps -> scanImports -> esbuild.build 

終端所輸出的依賴信息來自于 deps 變量,這個變量在 optimizeDeps中通過執行 scanImports 拿到:

所以我們斷點進入到 scanImports 當中:

可以看到這里會讀取配置中的 input 配置,項目里面配置的是./src/index.tsx,如果配置了這個后會根據 root 和 input 拼接后的路徑作為入口來搜尋依賴。但不幸的是,這個入口路徑是找不到的,如下圖所示:

原因是配置文件是這樣的:

  1.   input: './src/index.js'
  2.   root: path.resolve(__dirname, 'src'

當時為了將 html 放到 src 目錄下,就隨手設置了 root 參數,導致和 input 拼接后的路徑找不到了,中間出現了src/src,很顯然是多寫了層src, 那么這種情況下相當于沒有找到 entry,就直接返回一個空對象了,Vite 會認為找不到入口,也就無法進行依賴預構建了。

2. 解決方案

解決的核心在于保證 entry 路徑是可以被 Vite 解析的,有兩種方式:

  • 去掉 root 的配置,這樣默認會用 process.cwd() 作為 root,最后 entry 路徑是可以找到的。
  • 去掉 input 的配置,這時候 Vite 的行為是搜尋 root 目錄下的 html 文件,即使是 root 配置成項目根目錄下的 src 也能解析到。

3. 問題復盤

現在一切正常了,但回到最初的問題,為什么命令行中會刷出這么多 new dependencies之類的 log,構建緩存目錄會一次次刷新,頁面會一直卡住?雖然問題解決了,但對于這些詭異的問題還是有必要探究清楚的。

翻閱源碼后,發現問題的根源在于 Vite 預構建并不只有在服務啟動的時候進行,在請求進入的時候也有可能觸發預構建,也就是說,預構建的行為不只是在最開始觸發一次,在瀏覽器訪問項目的時候有可能再次觸發,甚至是多次觸發。

之前提到的第一次預構建的流程,在其中 runOptimize 函數中會注冊運行時優化的邏輯,如下圖箭頭處所示:

里面返回一個閉包函數,主要是運行時優化的邏輯,其中會再次調用 optimizeDeps,接著順理成章地執行 scanImports + esbuild.build,最后重啟 Vite Server。

這個閉包函數會在 Vite 的 resolvePlugin 中被調用。簡單來說,當瀏覽器發起請求時,請求進入 Vite 服務器中,首先是執行一系列的插件(順序參考官網),其中就會在比較靠前的位置走到 resolvePlugin,這個插件中分析項目中的依賴關系,如果發現了有依賴沒有被預構建,那么會執行 _registerMissingImport 將這個依賴進行預構建,并重啟 Vite Server。

_registerMissingImport 調用之后會進行二次預構建,但不是立即執行,相當于每隔 100 ms 批量收集一次然后一起構建,實際上有一個截流的過程,這樣一來不用對每個依賴都調用 optimizeDeps ,也能提高預構建的效率,屬于 Vite 里面細節性的優化,和 Vue 里面的nextTick 批量更新有異曲同工之妙。這里貼下_registerMissingImport返回的函數代碼:

  1. return function registerMissingImport( 
  2.   id: string, 
  3.   resolved: string, 
  4.   ssr?: boolean 
  5. ) { 
  6.   // 沒被預構建 
  7.   if (!knownOptimized[id]) { 
  8.     currentMissing[id] = resolved 
  9.     // 截流 
  10.     if (handle) clearTimeout(handle) 
  11.     // 100 ms 后批量預構建依賴 
  12.     handle = setTimeout(() => rerun(ssr), debounceMs) 
  13.     // 重啟 Vite Server 
  14.     server._pendingReload = new Promise((r) => { 
  15.       pendingResolve = r 
  16.     }) 
  17.   } 

實際上經過截流的二次優化過程也能夠解釋上述大片的 log 產生的原因,每隔 100 ms 都會發現新的依賴,都會重啟 Vite Server 預構建,必然會導致大量的 new dependecies ,這個時候服務器頻繁重啟,頁面卡住也是非常正常的了。

4. 一些延伸

上述分析過程算是找到這個踩坑問題的根源所在,不過,我在 Vite 倉庫也搜了相關的 issue,像這種二次預構建的過程其實在正常的項目中也是會真實存在的,主要是為了處理項目中一些動態 import 的場景,當這種通過動態 import 的依賴多了之后,也會非常影響構建性能,這種場景下也可以用 antfu 同學 開發的 vite-plugin-optimize-persist 這個插件進行自動優化。

后續思考

遷移過后項目能夠正常運行了,并獲得了相當不錯的構建效率提升,但目前來看還有兩個問題讓我陷入了思考。

1. 落地前景

首先,這個業務項目相對來說架構沒有那么復雜,如果涉及到 Monorepo、SSR 構建或者更復雜的架構,Vite 是否還可以遷移過去?Bundless 是否可以大規模地運用到當前中后臺業務當中?

這一點需要近期不斷的投入和實踐來驗證,也會跟大家持續分享。

2. Vite 是否上生產環境

另一方面,是否應該讓 Vite 接管生產環境的構建?要知道它對于開發環境效率的提升是非常明顯的,但是否真的適合生產環境?

我個人覺得開發環境和生產環境得分開看,前者的痛點是效率,而后者的訴求是穩定、質量,這個時候我覺得相比 Vite 打包用的 Rollup,生產環境上 Webpack 是一個更好的選擇。

但這樣一來又會帶來新的問題——兩者的配置差異巨大,如何解決配置統一的問題?關于這個問題,之后再來專門詳細地進行探討,我個人對此持樂觀態度,至少是有可能去實現的。或許真的當 Webpack 和 Vite 之間的配置差異能夠被某個方案抹平的時候,Vite 可以適用于所有正在使用 Webpack 的項目,換句話說,當那一天真正到來的時候,在開發環境下,Vite 可以完全取代 Webpack 了。

 

責任編輯:姜華 來源: 三元同學
相關推薦

2022-06-02 08:30:55

項目React重構

2018-05-03 06:56:43

項目經理代碼項目管理

2024-01-31 16:36:53

2019-06-19 09:33:17

微服務面試電商

2023-07-14 13:34:34

StableDiffusion模型

2013-03-20 09:54:43

某單位軟件

2017-04-24 11:40:26

大數據制造企業

2022-06-02 11:11:43

AI深度學習

2023-10-06 15:29:07

MySQL數據庫更新

2017-12-04 09:26:56

架構師碼農菜鳥

2024-11-01 17:00:03

2018-03-20 05:33:17

2019-09-09 13:58:07

2020-03-18 13:10:09

華為

2021-04-06 11:07:02

字節跳動組織架構

2015-03-09 17:49:40

SDN

2019-04-04 12:59:03

微服務企業數字化

2015-08-17 11:02:27

創業經歷

2023-07-23 17:19:34

人工智能系統

2016-11-29 09:23:17

Spark集群部署
點贊
收藏

51CTO技術棧公眾號

电影一区中文字幕| 国产一区二区丝袜| 日本视频一区在线观看| www日韩在线| 天堂中文资源在线| 在线视频亚洲欧美中文| 国产日韩综合av| 亚洲97在线观看| 国产精品一区二区小说| 亚洲av激情无码专区在线播放| 亚州av乱码久久精品蜜桃| 色婷婷精品久久二区二区蜜臀av | 美国精品一区二区| 周于希免费高清在线观看| 成人永久看片免费视频天堂| 久久精品视频播放| 在线免费观看视频黄| 亚洲 另类 春色 国产| 蜜桃一区二区三区四区| 在线播放国产一区二区三区| 超碰影院在线观看| 国产一区二区视频免费观看| 成人久久综合| 欧美色精品天天在线观看视频| 欧美一进一出视频| www.成人免费视频| 欧美视频官网| 精品成人一区二区三区| 成人在线视频一区二区三区| wwwav在线播放| 日韩和的一区二区| 一个人看的www久久| 国产精品99久久久精品无码| 国产亚av手机在线观看| 成人免费av在线| 国产欧美精品在线| 99久久99久久精品国产| 综合亚洲自拍| 福利视频第一区| 欧美成人综合一区| 这里只有精品国产| 国产精品成人av| 91精品国产乱码久久蜜臀| 奇米777四色影视在线看| 韩国av电影在线观看| 日韩午夜免费| 亚洲天堂成人在线| 婷婷五月色综合| 亚洲专区一二三| 国产日韩精品一区二区| 美日韩一二三区| 中日韩免视频上线全都免费| 亚洲精品成人av| 日韩无套无码精品| 亚洲美女尤物影院| 岛国av一区二区在线在线观看| 99久热在线精品视频| 黄网页在线观看| 成人激情黄色小说| 国产精品27p| 日韩激情电影免费看| 懂色av色香蕉一区二区蜜桃| 色婷婷综合久久久中文字幕| 日韩日韩日韩日韩日韩| 四虎影院在线播放| 97久久精品人人做人人爽| 国产精品精品一区二区三区午夜版 | 精品久久久久久乱码天堂| 亚洲永久精品在线观看| 99久久99久久精品国产片桃花| 国产一区二区日韩精品欧美精品| 亚洲怡红院在线| yellow在线观看网址| 欧美国产精品一区| 国产精品国产三级国产专区53 | 亚洲黄色精品| 中文字幕亚洲一区二区三区| 国产人妖在线观看| 66精品视频在线观看| 精品国产成人在线影院| aa一级黄色片| 日韩视频一区二区三区四区| 在线视频一区二区免费| 蜜臀精品一区二区| 黄色大片在线播放| 亚洲一区中文日韩| 在线播放 亚洲| 三级在线观看| 丁香啪啪综合成人亚洲小说 | 丝袜久久网站| 91麻豆精品国产91久久久更新时间| 日本人体一区二区| 亚洲天堂av影院| 自拍偷在线精品自拍偷无码专区 | 精品99在线| 亚洲国产成人精品电影| 免费黄频在线观看| 国产精品成人国产| 欧美亚洲一区三区| 97av视频在线观看| 一区二区乱码| 69精品人人人人| 污污内射在线观看一区二区少妇 | 精品国产综合| 四虎久久免费| 欧美国产日产图区| 成年人深夜视频| 精品国产欧美日韩一区二区三区| 懂色av中文一区二区三区天美| 亚洲欧美日本一区二区三区| 日韩中文视频| 亚洲高清av在线| 久久爱一区二区| 久久综合国产| 日韩在线视频国产| 国产天堂av在线| 噜噜噜91成人网| 欧美一级淫片videoshd| 国产精品av电影| 精品国产免费观看| 国内久久精品视频| 国产精品一区二区三区久久| 亚洲乱色熟女一区二区三区| 国产一区二区福利| 91超碰在线电影| 亚洲男人天堂久久| 中文字幕在线观看不卡视频| 视频一区二区视频| 制服诱惑亚洲| 欧美日本视频在线| 亚洲制服在线观看| 99re91这里只有精品| 精品精品国产高清a毛片牛牛| 美女搡bbb又爽又猛又黄www| 久久亚洲道色| 亚洲欧洲在线观看| 91香蕉在线视频| 久久久精品网| 精品一区二区三区日本| 国产99re66在线视频| 日韩欧美中文字幕精品| 亚洲色偷偷色噜噜狠狠99网| 女人香蕉久久**毛片精品| 午夜精品99久久免费| www.热久久| 一区二区成人在线| 97免费公开视频| 三级精品视频| 91国内在线视频| 亚洲性生活大片| 成人网在线播放| 韩日视频在线观看| 99这里只有精品视频| 色综合视频一区中文字幕| 日本中文在线播放| 成人教育av在线| 久久久久久久久久网| 日本一区免费网站| 伊人一区二区三区久久精品| 丁香社区五月天| 国产东北露脸精品视频| 欧美成人免费在线| av亚洲一区二区三区| 在线电影av不卡网址| 又骚又黄的视频| 最新久久zyz资源站| 亚洲免费黄色录像| 欧美日韩精品| 久久久综合亚洲91久久98| 黄色免费在线看| 欧美v国产在线一区二区三区| 久久网免费视频| 蜜臀av一区二区| 一区二区在线观| 女生影院久久| 亚洲成人网av| 国产嫩bbwbbw高潮| 成人免费视频免费观看| 无码人妻丰满熟妇区96| 欧美经典影片视频网站| 国产一区二区动漫| 国产欧美熟妇另类久久久| 国产欧美一区二区精品性色超碰| 霍思燕三级露全乳照| 校花撩起jk露出白色内裤国产精品| 国产ts一区二区| 神马一区二区三区| 一区二区三区波多野结衣在线观看| 亚洲精品无码一区二区| 亚洲情侣在线| 国产精品综合网站| 欧洲黄色一区| 日韩一级二级三级| 天天做天天爱夜夜爽| 国产精品久久久爽爽爽麻豆色哟哟| 男人操女人免费软件| 99免费精品| 久草热久草热线频97精品| 精品久久毛片| 中文字幕在线看视频国产欧美| 国产色片在线观看| 色综合久久综合网97色综合| 日韩欧美123区| 久久网这里都是精品| 亚洲熟妇av日韩熟妇在线| 日韩啪啪电影网| 国产精品最新在线观看| av在线播放资源| 亚洲护士老师的毛茸茸最新章节| 日批视频免费观看| 婷婷久久综合九色国产成人 | 亚洲图中文字幕| 亚洲美女福利视频| 91精选在线观看| 人人妻人人爽人人澡人人精品| 99久久久精品| 欧美视频在线播放一区| 亚洲va在线| 性欧美videosex高清少妇| 国产主播性色av福利精品一区| 欧美精品18videosex性欧美| 丰满人妻一区二区三区免费| 欧美视频一区二区三区四区 | 99在线热播精品免费99热| 国产一区一区三区| 欧美综合视频| 日本在线视频一区| h1515四虎成人| 亲子乱一区二区三区电影| 国产玉足榨精视频在线观看| 欧美性大战久久久久久久| 日韩三级免费看| 亚洲尤物视频在线| 中文字幕av播放| 成人国产视频在线观看| www日本在线观看| 国产成人鲁色资源国产91色综| 伊人网在线综合| 青青草一区二区三区| 中文精品一区二区三区| 大片网站久久| 色一情一乱一伦一区二区三区| 三级精品视频| 欧美日韩一区二区三区在线视频 | 精品乱人伦小说| 精品国产亚洲AV| 国产精品网站免费| 视频精品二区| 亚洲va电影大全| 中文字幕日本在线观看| 欧美疯狂性受xxxxx喷水图片| 亚洲欧美激情精品一区二区| 91青草视频久久| 日韩欧美二区| 国产精品免费一区二区三区都可以| 亚洲欧美另类综合| 日韩女优av电影在线观看| 成年人免费看毛片| 亚洲国产精品久久久男人的天堂| 亚洲av片不卡无码久久| 99精品欧美一区二区三区小说 | 香蕉久久一区| 久久久久久伊人| 美女扒开腿让男人桶爽久久软| 68精品久久久久久欧美| 伊人久久综合一区二区| 国产精品国产三级国产aⅴ9色| 亚洲国产尤物| 91沈先生作品| 国产精品午夜av| 日本黑人久久| 91精品国产自产拍在线观看蜜 | 里番在线播放| 欧美在线免费观看| 精品自拍视频| 官网99热精品| 巨大黑人极品videos精品| 国产欧美精品一区二区三区-老狼| 国产高清精品二区| 国内精品二区| 亚洲精品不卡在线观看| 激情久久av| 日韩免费特黄一二三区| 大地资源网在线观看免费官网| 精品久久不卡| 欧美精品一区二区性色a+v| 欧美中文一区二区| 97超碰人人爱| 亚洲欧美日韩国产一区| 中文字幕无码精品亚洲资源网久久| 国产精品亚洲欧美| 欧美视频在线观看网站 | 中文字幕日韩久久| 成人黄色777网| 精品在线观看一区| 亚洲国产激情av| 久久影院一区二区| 欧洲一区二区三区免费视频| 亚洲高清视频网站| 中文字幕精品一区久久久久| sm在线观看| 成人福利在线视频| 久久久加勒比| 国产亚洲二区| 亚洲国产精品综合久久久 | 一区二区三区国| 日韩av有码| 九九爱精品视频| 国产一区91精品张津瑜| 亚洲精品国产一区黑色丝袜| 91理论电影在线观看| 草草地址线路①屁屁影院成人| 国产精品久线观看视频| 日韩一区二区视频在线| 日韩女优av电影| 国产激情小视频在线| 久久夜色撩人精品| 伊人222成人综合网| 久久99精品视频一区97| 黄页在线观看免费| 成人妇女淫片aaaa视频| 精品国产一区二区三区小蝌蚪| 黄色激情在线视频| 国产剧情一区在线| 在线观看免费视频国产| 自拍视频在线观看一区二区| 午夜一级黄色片| 亚洲精选在线观看| 国产在线精彩视频| 国产精品露出视频| 国产精品videosex极品| 秋霞无码一区二区| 国产精品12区| 91人妻一区二区三区蜜臀| 色婷婷综合中文久久一本| 婷婷亚洲一区二区三区| 性金发美女69hd大尺寸| youjizz亚洲| 欧美亚洲日本一区二区三区| 高清在线观看日韩| 国产精品毛片一区二区| 中文字幕亚洲在| 伊人久久亚洲综合| 亚洲成成品网站| 日本大胆在线观看| 成人免费91在线看| 国产一区日韩一区| 国产麻豆剧传媒精品国产av| 亚洲成人中文在线| 色窝窝无码一区二区三区| 国内精品久久久久久影视8| 四虎4545www精品视频| 欧美精品一区二区三区在线四季| 欧美一级久久| 在线看片中文字幕| 亚洲成av人片| 国产精品视频在线观看免费| 亚洲精品久久久一区二区三区 | 欧美精品免费播放| 成人欧美一区二区三区的电影| 蜜桃传媒视频第一区入口在线看| 国产日韩一区| 免费人成又黄又爽又色| 欧美日韩国产电影| 91麻豆一二三四在线| 国产精品久久久久久久久婷婷| 国产精品视频| 特黄一区二区三区| 日韩精品一区二区三区视频在线观看 | 久久品道一品道久久精品| 午夜一区二区三区四区| 日韩视频免费大全中文字幕| 五月天国产在线| 亚洲不卡1区| 欧美精品网站| 黄色国产在线观看| 欧美色视频在线| 污片视频在线免费观看| 国产欧美va欧美va香蕉在| 自由日本语亚洲人高潮| 国产日韩视频一区| 日本乱码高清不卡字幕| 性感美女一级片| 国产精品麻豆va在线播放| 亚洲成人一区| 国产人妻人伦精品1国产丝袜| 欧美乱熟臀69xxxxxx| zzzwww在线看片免费| 亚洲精品国产精品国自产观看 | 7777精品伊久久久大香线蕉语言| 成人资源视频网站免费| 一区二区三区视频免费观看| 国产精品一区二区小说| 亚洲成av人片一区二区三区| 91xxx在线观看| 国产一区二区三区免费不卡| 美洲天堂一区二卡三卡四卡视频| 加勒比av在线播放| 日本大香伊一区二区三区| 成人国产免费电影|