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

徹底搞懂 Webpack 的 Sourcemap 配置原理

開發 前端
version 是版本號,file 是文件名,sourceRoot 是源碼根目錄,names 是轉換前的變量名,sources 是源碼文件,sourcesContent 是每個 sources 對應的源碼的內容,mappings 就是一個個位置映射了。

用過 webpack 的都知道,webpack 的 sourcemap 配置是比較麻煩的,比如這兩個配置的區別:

  • eval-nosources-cheap-module-source-map
  • hidden-module-source-map

是不是分不清楚?

其實它是有規律的。

你把配置寫錯的時候,webpack 會提示你一個正則:

圖片

^(inline-|hidden-|eval-)?(nosources-)?(cheap-(module-)?)?source-map$

這個就是配置的規律,是幾種基礎配置的組合。

搞懂了每一種基礎配置,比如 eval、nosources、cheap、module,按照規律組合起來,也就搞懂了整體的配置。

那這每一種配置都是什么意思呢?

我們分別來看一下。

在講基礎配置之前,首先講下 sourcemap 是什么:

sourcemap

sourcemap 是關聯編譯后的代碼和源碼的,通過一個個行列號的映射。

比如編譯后代碼的第 3 行第 4 列,對應著源碼里的第 8 行第 5 列這種,這叫做一個 mapping。

sourcemap 的格式如下:

{
version : 3,
file: "out.js",
sourceRoot : "",
sources: ["foo.js", "bar.js"],
names: ["a", "b"],
mappings: "AAgBC,SAAQ,CAAEA;AAAEA",
sourcesContent: ['const a = 1; console.log(a)', 'const b = 2; console.log(b)']
}

version 是版本號,file 是文件名,sourceRoot 是源碼根目錄,names 是轉換前的變量名,sources 是源碼文件,sourcesContent 是每個 sources 對應的源碼的內容,mappings 就是一個個位置映射了。

為什么 sources 可以有多個呢?

因為可能編譯產物是多個源文件合并的,比如打包,一個 bundle.js 就對應了 n 個 sources 源文件。

為什么要把變量名單獨摘出來到 names 里呢?

因為這樣就可以通過下標來索引了,mapping 里面就不用保存變量名,只保留 names 的索引就行。

重點是 mappings 部分:

mappings 部分是通過分號;? 和逗號 , 分隔的:

mappings:"AAAAA,BBBBB;CCCCC"

一個分號就代表一行,這樣就免去了行的映射。

然后每一行可能有多個位置的映射,用 , 分隔。

那具體的每一個 mapping 都是啥呢?

比如 AAAAA 一共五位,分別有不同的含義:

  • 第一位:轉換后代碼的第幾列(行數通過分號 ; 來確定)
  • 第二位:對應轉換前的哪個源碼文件,保存在 sources 里的,這里通過下標索引
  • 第三位:對應轉換前的源碼的第幾行
  • 第四位:對應轉換前的源碼的第幾列
  • 第五位:對應轉換前的源碼的哪個變量名,保存在 names 里的,這里通過下標索引

然后經過編碼之后,就成了 AAAAA 這種,這種編碼方式叫做 VLQ 編碼。

sourcemap 的格式還是很容易理解的,就是一一映射編譯后代碼的位置和源碼的位置。

各種調試工具一般都支持 sourcemap 的解析,只要在文件末尾加上這樣一行:

//@ sourceMappingURL=/path/to/source.js.map

運行時就會關聯到源碼:

圖片

sourcemap 介紹完了,接下來一起來看下 webpack 的幾種 sourcemap 配置。

前面說過,webpack 的 sourcemap 配置是 eval、cheap、nosources、inline、source-map 等基礎配置的組合。

我們先分別來看下這幾種基礎配置:

eval

eval 的 api 是動態執行 JS 代碼的。比如:

圖片

但有個問題,eval 的代碼打不了斷點。

怎么解決這個問題呢?

瀏覽器支持了這樣一種特性,只要在 eval 代碼的最后加上 //# sourceURL=xxx,那就會以 xxx 為名字把這段代碼加到 sources 里。那不就可以打斷點了么?

比如這樣:

圖片

執行以后,你會發現 sources 多了光.js的文件:

圖片

它是可以打斷點的,比如在 add 里打個斷點,然后再執行 eval。

你會發現它斷住了!

圖片

除了指定 source 文件外,還可以進一步指定 sourcemap 來映射到源碼:

圖片

這樣,動態 eval 的代碼也能關聯到源碼,并且能打斷點了!

webpack 就利用了 eval 這個特性來優化的 sourcemap 生成的性能,比如你可以指定 devtool 為 eval:

圖片

生成的代碼就是每個模塊都被 eval 包裹的,并且有 sourceUrl 來指定文件名:

圖片

這樣有啥好處呢?

快呀,因為只要指定個文件名就行,不用生成 sourcemap。sourcemap 的生成還是很慢的,要一個個 mapping 的處理,做編碼之類的。

每個模塊的代碼都被 eval 包裹,那么執行的時候就會在 sources 里生成對應的文件,這樣就可以打斷點了:

圖片

不過這樣只是把每個模塊的代碼分了出去,并沒有做源碼的關聯,如果相關聯源碼,可以再開啟 sourcemap:

圖片

你會發現生成的代碼也是用 eval 包裹的,但除了 sourceUrl 外,還有 sourceMappingUrl:

圖片

再運行的時候除了 eval 的代碼會生成文件放在 sources 外,還會做 sourcemap 的映射:

圖片

webpack 的 sourcemap 的配置就利用了瀏覽器對 eval 代碼的調試支持。

所以為什么這個配置項不叫 sourcemap 而叫 devtool 呢?

因為不只是 sourcemap 呀,eval 的方式也行。

再來看下一個基礎配置:

source-map

source-map 的配置是生成獨立的 sourcemap 文件:

圖片

圖片

圖片

可以關聯,也可以不關聯,比如加上 hidden,就是生成 sourcemap 但是不關聯:

圖片

圖片

生產環境就不需要關聯 sourcemap,但是可能要生成 sourcemap 文件,把它上傳到錯誤管理平臺之類的,用來映射線上代碼報錯位置到對應的源碼。

此外,還可以配置成 inline 的:

圖片

這個就是通過 dataUrl 的方式內聯在打包后的文件里:

圖片

這幾個配置還是很好懂的,我們來看下一個基礎配置:

cheap

sourcemap 慢主要是處理映射比較慢,很多情況下我們不需要映射到源碼的行和列,只要精確到行就行,這時候就可以用 cheap。

不精確到列能提升 souremap 生成速度,但是會犧牲一些精準度:

圖片

我們再來看下一個基礎配置:

module

webpack 中對一個模塊會進行多次處理,比如經過 loader A 做一次轉換,再用 laoder B 做一次轉換,之后打包到一起。

每次轉換都會生成 sourcemap,那也就是有多個 sourcemap:

圖片

默認 sourcemap 只是能從 bundle 關聯到模塊的代碼,也就是只關聯了最后那個 sourcemap。

那如果你想調試最初的源碼怎么辦呢?

那就把每一次的 loader 的 sourcemap 也關聯起來,這就是 module 配置的作用。

比如我們想調試 React 最初的源碼,那就要先生成有 sourcemap 的代碼:

圖片

怎么生成有 sourcemap 的 React 代碼可以看我前面一篇文章。

有了 sourcemap 之后,要配置下 sourcemap-loader:

圖片

它的作用就是讀取源碼的 sourcemap,傳遞給后面的 loader。

之后配置 devtool,加上 module:

圖片

再次運行,你就會發現 react 代碼能映射到最初的源碼了:

圖片

之前只能從 bundle.js 映射到編譯后的模塊代碼,也就是這一步:

圖片

devtool 配置加上 module,就支持了 loader 的 sourcemap 映射,然后再加上 sourmap-loader 來讀取源碼的 sourcemap,這樣就能一次性映射回最初的源碼:

圖片

當你想調試最初的源碼的時候,module 的配置就很有用了。

接下來還有最后一個基礎配置:

nosources

sourcemap 里是有 sourceContent 部分的,也就是直接把源碼貼在這里,這樣的好處是根據文件路徑查不到文件也可以映射,但這樣會增加 sourcemap 的體積。

如果你確定根據文件路徑能查找到源文件,那不生成 sourceContent 也行。

比如 devtool 配置為 source-map,生成的 sourcemap 是這樣的:

圖片

當你加上 nosources 之后,生成的 sourcemap 就沒有 sourceContent 部分了:

圖片

sourcemap 文件大小會小很多。

基礎配置講完了,接下來就是各種組合了,這個就比較簡單了,就算組合錯了,webpack 也會提示你應該按照什么順序來組合。

它是按照這個正則來校驗的:^(inline-|hidden-|eval-)?(nosources-)?(cheap-(module-)?)?source-map$

我們討論下最佳實踐:

線上的時候當然要啟用 hidden,不關聯 sourcemap,但要生成 sourcemap,不大需要 module 來映射回最初的源碼,所以可能是 hidden-source-map 這種。

開發的時候可以用 eval 的方式,這樣是每個模塊單獨做映射,不用從 bundle.js 開始映射,然后 cheap 也可以開啟,只映射到源碼的某一行,提升生成速度,一般需要 module 來映射回最初的源碼,所以可能是 eval-cheap-module-source-map 這種。

當然,具體怎么配置是按照需求來的,我們理解了每個基礎配置,知道怎么組合就可以了。

不知道有沒有同學會覺得這樣寫比較麻煩,能不能每個基礎配置用 true、false 的方式配置呢?

確實可以,有這樣一個插件:SourceMapDevToolPlugin

它有很多 option,比如 module、columns、noSources 等:

圖片

相當于是 devtool 的另一種配置方式,啟用它需要把 devtool 設置為 false。

而且它可以控制更多東西,比如修改 sourcemap 的 url 和文件名等:

圖片

當你需要做更多的 sourcemap 生成方式的控制的時候,可以使用這個 webpack 插件。

總結

webpack 的 sourcemap 配置比較麻煩,但其實也是有規律的。

它是對一些基礎配置按照一定順序的組合,理解了每個基礎配置,知道了怎么組合就理解了各種 devtool 配置。

  • eval:瀏覽器 devtool 支持通過 sourceUrl 來把 eval 的內容單獨生成文件,還可以進一步通過 sourceMappingUrl 來映射回源碼,webpack 利用這個特性來簡化了 sourcemap 的處理,可以直接從模塊開始映射,不用從 bundle 級別。
  • cheap:只映射到源代碼的某一行,不精確到列,可以提升 sourcemap 生成速度
  • source-map:生成 sourcemap 文件,可以配置 inline,會以 dataURL 的方式內聯,可以配置 hidden,只生成 sourcemap,不和生成的文件關聯
  • nosources:不生成 sourceContent 內容,可以減小 sourcemap 文件的大小
  • module:sourcemap 生成時會關聯每一步 loader 生成的 sourcemap,配合 sourcemap-loader 可以映射回最初的源碼

理解了這些基礎配置項,根據 ^(inline-|hidden-|eval-)?(nosources-)?(cheap-(module-)?)?source-map$ 的規律來進行組合,就可以實現各種需求下的 sourcemap 配置。

當然,這種 sourcemap 配置還不夠細致,比如 sourcemap 的 url 怎么生成,文件名是什么。如果想對這些做配置,可以關掉 devtool,啟用 SourceMapDevToolPlugin 來配置。

雖然 webapck 的 sourcemap 配置方式比較多,但最底層也就是瀏覽器支持的文件級別的 sourcemap 還有 eval 代碼的 source 映射和 sourcemap 這兩種機制。其余的方式都是基于這兩種機制的封裝。

理解了瀏覽器 devtool的機制,webpack 封裝出的基礎配置,知道了組合規則,就可以應對各種需求的 sourcemap 配置。

責任編輯:武曉燕 來源: 神光的編程秘籍
相關推薦

2023-05-29 08:12:38

2023-10-18 10:55:55

HashMap

2021-10-11 11:58:41

Channel原理recvq

2021-10-09 19:05:06

channelGo原理

2021-07-16 11:35:20

Java線程池代碼

2021-07-08 10:08:03

DvaJS前端Dva

2022-04-24 11:06:54

SpringBootjar代碼

2025-11-13 08:08:15

2021-12-15 09:21:59

Webpack 前端Sourcemap

2025-04-21 04:00:00

2023-09-28 08:15:05

SpringBean加載

2021-12-29 17:29:07

KubernetesEvents集群

2020-04-28 22:12:30

Nginx正向代理反向代理

2024-10-15 17:12:38

代碼父子線程開源

2021-10-15 08:32:03

RocketMQ數據結構架構

2024-01-03 13:39:00

JS,Javascrip算法

2025-01-13 16:00:00

服務網關分布式系統架構

2025-04-11 05:55:00

2025-06-30 00:32:43

策略模式算法MyBatis

2017-12-05 17:44:31

機器學習CNN卷積層
點贊
收藏

51CTO技術棧公眾號

99久久精品免费看国产一区二区三区 | 久一视频在线观看| xxxx日韩| 色噜噜狠狠色综合欧洲selulu| 亚洲欧美影院| 丰满肉肉bbwwbbww| 日韩精品视频网站| 欧美激情一级精品国产| 亚洲性猛交xxxx乱大交| 国产区一区二| 91国产成人在线| 六月婷婷激情网| 男人天堂网在线观看| 极品少妇一区二区三区精品视频| 久久久亚洲网站| 性爱在线免费视频| 精品日产乱码久久久久久仙踪林| 欧美色图12p| 国产精品网站免费| 国产区在线观看| 国产日韩精品一区二区浪潮av| 91精品久久香蕉国产线看观看| 国产嫩bbwbbw高潮| 国内一区二区三区| 日韩在线视频播放| 免费在线观看污| 99ri日韩精品视频| 91精品免费观看| 免费看黄色一级大片| av漫画网站在线观看| 亚洲三级在线免费| 特级西西444www大精品视频| 天天干天天舔天天射| 国产精品一卡二卡在线观看| 国产精品亚洲网站| 免费看毛片网站| 亚洲精选在线| 欧美精品videossex88| 中文字幕无码日韩专区免费| 免费一区二区| 精品亚洲aⅴ在线观看| 国产老头和老头xxxx×| 少妇高潮一区二区三区99| 日本乱人伦一区| 国产乱子伦农村叉叉叉| 欧美一卡二卡| 怡红院av一区二区三区| 一卡二卡3卡四卡高清精品视频| 污视频在线免费观看| 国产91精品欧美| 91在线网站视频| 国产精品综合在线| 韩国成人福利片在线播放| 国产精品揄拍一区二区| 国产精品xxxxxx| 日本中文在线一区| 国产国语videosex另类| 国产偷人爽久久久久久老妇app | 91精品国产九九九久久久亚洲| 亚洲色图综合区| 亚洲精品a级片| 久久成人精品电影| 青青青在线视频| 欧美+日本+国产+在线a∨观看| 免费91在线视频| 青春草免费视频| 极品尤物久久久av免费看| 欧美高清在线观看| 亚洲 欧美 视频| 久久午夜精品一区二区| 国产精品免费网站| 国产精品熟女久久久久久| 国产精品小仙女| 国产精品1024久久| 亚洲天堂视频在线观看| 中文字幕免费高清| 成人综合一区| 久久国产天堂福利天堂| 欧美一级高潮片| 国产精品女主播一区二区三区| 国产97在线视频| 亚洲网站在线免费观看| 国产麻豆精品一区二区| 国产精品视频福利| 毛片免费在线观看| 中文字幕一区av| 性高湖久久久久久久久aaaaa| 色戒汤唯在线| 欧美色男人天堂| 性折磨bdsm欧美激情另类| 偷窥自拍亚洲色图精选| 中文字幕在线日韩| 久久久久无码精品国产| 久久亚洲欧美| 亚洲影院色无极综合| 香蕉国产在线视频| 国产精品美女久久久久aⅴ| 麻豆视频传媒入口| 麻豆成全视频免费观看在线看| 欧洲av一区二区嗯嗯嗯啊| 欧美熟妇另类久久久久久多毛| 免费观看成人www动漫视频| 在线a欧美视频| 国产在线观看免费视频今夜| 日韩和欧美的一区| 成人在线资源网址| 成人午夜电影在线观看| 亚洲国产乱码最新视频| 日韩不卡一二三| 老司机在线精品视频| 久久精品亚洲一区| 国产成人在线视频观看| 国产成人精品免费看| 日韩国产在线一区| 玖玖在线播放| 欧美一区二区三区播放老司机| 亚洲av综合一区二区| 国产精品激情| 成人亲热视频网站| 国产区视频在线播放| 午夜电影久久久| www.桃色.com| 日韩电影二区| 国产99在线|中文| 午夜性色福利影院| 亚洲电影在线播放| 亚洲精品无码久久久久久久| 精品免费av| 欧美诱惑福利视频| 人妻视频一区二区三区| 亚洲精品国产视频| 午夜一区二区视频| 欧美国产美女| 国产精品三级久久久久久电影| 亚洲 欧美 激情 小说 另类| 亚洲一区二区视频在线| 欧洲在线免费视频| 婷婷伊人综合| 国产日韩欧美视频| 国产在线观看免费| 色综合久久久久久久久久久| 国产精品300页| 99亚洲精品| 国产私拍一区| 国产高清中文字幕在线| 亚洲国产欧美日韩精品| 久久高清免费视频| 成人久久久精品乱码一区二区三区| 9999在线观看| 美女久久精品| 欧美猛少妇色xxxxx| 99热这里只有精品在线观看| 亚洲精品久久久蜜桃| 国产xxx在线观看| 欧美一区亚洲| 9a蜜桃久久久久久免费| heyzo一区| 亚洲电影免费观看高清| 久草国产精品视频| 久久先锋资源网| 中文字幕第21页| 国产国产精品| 99久久99久久| a天堂资源在线| 亚洲精品一区二三区不卡| 999视频在线| 国产精品久久久久久户外露出 | 最新日韩免费视频| 韩国av一区二区三区四区| 国产911在线观看| 国产成人精品亚洲线观看| 2019亚洲男人天堂| 成人性爱视频在线观看| 欧美日韩国产在线观看| 91嫩草|国产丨精品入口| 风间由美性色一区二区三区 | av有码在线观看| 亚洲精品一区av在线播放| 亚洲精品久久久久久久蜜桃| 国产精品国产a| 95视频在线观看| 日日夜夜精品视频天天综合网| 在线成人av电影| 91蝌蚪精品视频| 日韩av成人在线| 国产丝袜在线| 日韩精品免费在线观看| 亚洲中文字幕在线一区| 一级做a爱片久久| 亚洲自拍偷拍一区二区| 久久精品国产亚洲一区二区三区| 97中文字幕在线| 久久综合色占| 91在线视频免费| 中文字幕 在线观看| 久久精品福利视频| 青春草在线观看| 日韩天堂在线观看| 在线观看污污网站| 亚洲一区影音先锋| 少妇av片在线观看| 成人在线综合网| 老司机午夜性大片| 亚洲欧美日韩国产| 日韩在线视频在线| 欧美三级美国一级| 国产伦精品一区二区三区照片91| 欧美xxxx做受欧美护士| 欧美极品少妇xxxxⅹ免费视频 | 黄色网页免费在线观看| 97欧美在线视频| 看高清中日韩色视频| 国产精品**亚洲精品| 日本一本a高清免费不卡| 欧洲一区二区三区| 视频直播国产精品| 九色在线免费| 亚洲国产91色在线| 精品人妻无码一区二区三区蜜桃一| 91久久精品国产91性色tv| 九九热国产精品视频| 亚洲色图欧美偷拍| 粉嫩精品久久99综合一区| 99re这里只有精品视频首页| 成人免费播放视频| 精品亚洲aⅴ乱码一区二区三区| 妞干网在线免费视频| 中文亚洲欧美| 日本大片免费看| 亚洲精彩视频| 人人妻人人澡人人爽精品欧美一区| 国产成人一区| 美女被啪啪一区二区| 成人h动漫免费观看网站| 亚洲va国产va天堂va久久| 欧美视频第一| 国产精品露脸自拍| 123成人网| 国产精品久久999| 三上悠亚一区二区| 欧洲成人在线观看| 欧美激情网站| 97在线视频免费观看| 不卡的av影片| 高清欧美性猛交xxxx| 国产极品人妖在线观看| 久久久噜噜噜久噜久久| 国产蜜臀av在线播放| 国内免费久久久久久久久久久| 女人黄色免费在线观看| 久久久视频免费观看| 多野结衣av一区| 97超级碰碰碰久久久| 最近高清中文在线字幕在线观看1| 7m精品福利视频导航| 韩国主播福利视频一区二区三区| 欧美一区二区.| 国产精品久久久久av电视剧| 国产精品av在线播放| 欧美男女视频| 亚洲xxxxx性| 丁香综合av| 欧美二级三级| 国产日产一区| 亚洲最新免费视频| 欧美另类女人| 国产午夜福利100集发布| 亚洲日本免费| 国产三级三级三级看三级| 久久99精品久久久久婷婷| 毛片毛片毛片毛片毛| 成人国产在线观看| 欧美老熟妇乱大交xxxxx | 日本黄网免费一区二区精品| av中字幕久久| 欧美 国产 精品| av不卡在线| www.com操| 高清久久久久久| 日韩三级网址| 国产一区二区三区丝袜| 在线观看黄av| 久久99国产精品自在自在app| 波多野结衣视频一区二区| 日韩美女视频中文字幕| 日日狠狠久久| 国产伦一区二区三区色一情| 国产乱码精品一区二区亚洲| 日韩 欧美 自拍| 在线成人国产| 日韩在线xxx| 国产精品中文欧美| 久久久久久国产精品无码| 亚洲日本在线a| 国产在线观看黄色| 制服.丝袜.亚洲.另类.中文| 色猫av在线| 久久综合色影院| 欧美freesex| 91亚色免费| av在线不卡免费观看| 日本精品久久久久久久久久| 奇米精品一区二区三区在线观看 | 寂寞少妇一区二区三区| 欧美深性狂猛ⅹxxx深喉| 亚洲视频在线一区二区| 国产精品久久久免费视频| 91精品国产美女浴室洗澡无遮挡| 飘雪影视在线观看免费观看 | 国产精品专区免费| 亚洲最大福利视频| 欧美亚洲国产精品久久| av网站手机在线观看| 九一久久久久久| 日韩人妻一区二区三区| 亚洲国产视频在线| 96日本xxxxxⅹxxx17| 亚洲图片欧美午夜| 超碰91在线观看| 亚洲一区二区自拍| 成人精品亚洲| 欧美日韩一区二区在线免费观看| 福利一区福利二区| 亚洲欧美精品久久| 欧洲视频一区二区| 深夜福利在线视频| 97免费中文视频在线观看| 一区二区三区免费在线看| 樱花www成人免费视频| 强制捆绑调教一区二区| 亚洲精品色午夜无码专区日韩| 午夜视频在线观看一区二区 | 日韩精品视频免费| 牛牛电影国产一区二区| 亚洲japanese制服美女| 国产精品久久久久久影院8一贰佰| 亚洲熟妇av一区二区三区| jlzzjlzz亚洲日本少妇| 精品亚洲永久免费| 精品国产精品一区二区夜夜嗨| 18av在线视频| 成人免费看片视频| 国产精品97| www.com久久久| 国产精品福利在线播放| 亚洲自拍偷拍另类| 久久天天躁狠狠躁夜夜爽蜜月| 四虎影视成人精品国库在线观看| 亚洲欧美电影在线观看| 久久99久久精品| 看黄色录像一级片| 欧美一区二区福利在线| 哥也色在线视频| 99久久伊人精品影院| 韩日精品在线| 污污污www精品国产网站| 天天亚洲美女在线视频| 人成免费电影一二三区在线观看| 91av在线看| 欧美男同视频网| 奇米影音第四色| 中文字幕免费一区| 91久久精品无码一区二区| 美日韩在线视频| 中文一区二区三区四区| 精品无码国模私拍视频| 久久综合视频网| 特级西西444www高清大视频| 精品国产依人香蕉在线精品| 视频二区欧美| 一区二区传媒有限公司| 国产性做久久久久久| 国产精品特级毛片一区二区三区| 九九精品在线播放| 性欧美lx╳lx╳| a在线观看免费视频| 一区二区三区不卡在线观看| 日韩亚洲视频在线观看| 国产精品一二三在线| 牛牛国产精品| 成人免费av片| 3d成人h动漫网站入口| 日本动漫理论片在线观看网站| 久久精品第九区免费观看| 日本免费在线视频不卡一不卡二| 乱h高h女3p含苞待放| 亚洲精品一区二三区不卡| 农村妇女一区二区| 日韩欧美精品免费| 国产日韩欧美在线一区| 精品人妻一区二区三区三区四区| 欧美一区三区三区高中清蜜桃| 色综合天天爱| 少妇被狂c下部羞羞漫画| 91国偷自产一区二区开放时间 | 国产人妻精品久久久久野外| 欧美日韩在线看| a视频在线免费看| 日韩av免费电影| 99久久婷婷国产精品综合|