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

性能優化篇---Webpack構建速度優化

開發 前端
web可視化查看構建分析:得到了webpack構建信息文件starts.json,如何進行很好的可視化查看?

如何輸出Webpack構建分析

  •  輸出Webpack構建信息的.json文件:webpack --profile --json > starts.json 
  1.  --profile:記錄構建中的耗時信息
  2.  --json:以json格式輸出構建結果,只輸出一個json文件(包含所有的構建信息)
  •  web可視化查看構建分析:得到了webpack構建信息文件starts.json,如何進行很好的可視化查看?

        1. 方案一:通過可視化分析工具Webpack Analyse,是個在線Web應用,上傳starts.json文件就可以;

        2. 方案二:安裝webpack-bundle-analyzer工具npm i -g webpack-bundle-analyzer,生成starts.json后直接在其文件夾目錄執行webpack-bundle-analyzer后,瀏覽器會打開對應網頁并展示構建分析文檔地址webpack-bundle-analyzer

        3. webpack-dashboard是一款統計和優化webpack日志的工具,可以以表格形勢展示日志信息。其中包括構建過程和狀態、日志以及涉及的模塊列表

        4. jarvis是一款基于webapck-dashboard的webpack性能分析插件,性能分析的結果在瀏覽器顯示,比webpack-bundler-anazlyer更美觀清晰GitHub文檔地址

  •   npm i -D webpack-jarvis
  •   webpack.config.js配置:   
  1. const Jarvis = require("webpack-jarvis");  
  2.    plugins: [  
  3.      new Jarvis({  
  4.        watchOnly: false,  
  5.        port: 3001 // optional: set a port  
  6.      })  
  7.    ]; 
  •   port:監聽的端口,默認1337,監聽面板將監聽這個端口,通常像http://localhost:port/
  •   host:域名,默認localhost,不限制域名。
  •   watchOnly:僅僅監聽編譯階段。默認為true,如果高為false,jarvis不僅僅運行在編譯階段,在編譯完成后還保持運行狀態。
  •   界面:看到構建時間為:Time: 11593ms(作為優化時間對比)

webpack配置優化

  •  webpack在啟動時會從配置的Entry出發,解析出文件中的導入語句,再遞歸解析。
  •  對于導入語句Webpack會做出以下操作:

        1. 根據導入語句尋找對應的要導入的文件;

        2. 在根據要導入的文件后綴,使用配置中的Loader去處理文件(如使用ES6需要使用babel-loader處理)

  •  針對這兩點可以優化查找途徑

1. 優化Loader配置

  •   Loader處理文件的轉換操作是很耗時的,所以需要讓盡可能少的文件被Loader處理  
    1. {    
    2.      test: /\.js$/,    
    3.      use: [    
    4.          'babel-loader?cacheDirectory',//開啟轉換結果緩存    
    5.      ],    
    6.      include: path.resolve(__dirname, 'src'),//只對src目錄中文件采用babel-loader    
    7.      exclude: path.resolve(__dirname,' ./node_modules'),//排除node_modules目錄下的文件    
    8.  },  

2. 優化resolve.modules配置

  •   resolve.modules用于配置webpack去哪些目錄下尋找第三方模塊,默認是['node_modules'],但是,它會先去當前目錄的./node_modules查找,沒有的話再去../node_modules最后到根目錄;
  •   所以當安裝的第三方模塊都放在項目根目錄時,就沒有必要安默認的一層一層的查找,直接指明存放的絕對位置   
  1. resolve: {  
  2.             modules: [path.resolve(__dirname, 'node_modules')],  
  3.         } 

3. 優化resolve.extensions配置

  •   在導入沒帶文件后綴的路徑時,webpack會自動帶上后綴去嘗試詢問文件是否存在,而resolve.extensions用于配置嘗試后綴列表;默認為extensions:['js','json'];
  •   及當遇到require('./data')時webpack會先嘗試尋找data.js,沒有再去找data.json;如果列表越長,或者正確的后綴越往后,嘗試的次數就會越多
  •   所以在配置時為提升構建優化需遵守:

          1. 頻率出現高的文件后綴優先放在前面;

          2. 列表盡可能的小;

          3. 書寫導入語句時,盡量寫上后綴名

  •   因為項目中用的jsx較多,所以配置extensions: [".jsx",".js"],
  •  基本配置后查看構建速度:Time: 10654ms;配置前為Time: 11593ms 

使用DllPlugin優化

  •  在使用webpack進行打包時候,對于依賴的第三方庫,如react,react-dom等這些不會修改的依賴,可以讓它和業務代碼分開打包;
  •  只要不升級依賴庫版本,之后webpack就只需要打包項目業務代碼,遇到需要導入的模塊在某個動態鏈接庫中時,就直接去其中獲取;而不用再去編譯第三方庫,這樣第三方庫就只需要打包一次。
  •  接入需要完成的事:

        1. 將依賴的第三方模塊抽離,打包到一個個單獨的動態鏈接庫中

        2. 當需要導入的模塊存在動態鏈接庫中時,讓其直接從鏈接庫中獲取

        3. 項目依賴的所有動態鏈接庫都需要被加載

  •  接入工具(webpack已內置)

        1. DllPlugin插件:用于打包出一個個單獨的動態鏈接庫文件;

        2. DllReferencePlugin:用于在主要的配置文件中引入DllPlugin插件打包好的動態鏈接庫文件

  •  配置webpack_dll.config.js構建動態鏈接庫 
  1. const path = require('path');  
  2. const DllPlugin = require('webpack/lib/DllPlugin');  
  3. module.exports = {  
  4.     mode: 'production',  
  5.     entry: {  
  6.         // 將React相關模塊放入一個動態鏈接庫  
  7.         react: ['react','react-dom','react-router-dom','react-loadable'],  
  8.         librarys: ['wangeditor'],  
  9.         utils: ['axios','js-cookie']  
  10.     },  
  11.     output: {  
  12.         filename: '[name]-dll.js',  
  13.         path: path.resolve(__dirname, 'dll'),  
  14.         // 存放動態鏈接庫的全局變量名,加上_dll_防止全局變量沖突  
  15.         library: '_dll_[name]'  
  16.     },  
  17.     // 動態鏈接庫的全局變量名稱,需要可output.library中保持一致,也是輸出的manifest.json文件中name的字段值  
  18.     // 如react.manifest.json字段中存在"name":"_dll_react"  
  19.     plugins: [  
  20.         new DllPlugin({  
  21.             name: '_dll_[name]',  
  22.             path: path.join(__dirname, 'dll', '[name].manifest.json')  
  23.         })  
  24.     ]  
  •  webpack.pro.config.js中使用 
  1. const DllReferencePlugin = require('webpack/lib/DllReferencePlugin');  
  2. ...  
  3. plugins: [  
  4.     // 告訴webpack使用了哪些動態鏈接庫  
  5.         new DllReferencePlugin({  
  6.             manifest: require('./dll/react.manifest.json')  
  7.         }),  
  8.         new DllReferencePlugin({  
  9.             manifest: require('./dll/librarys.manifest.json')  
  10.         }),  
  11.         new DllReferencePlugin({  
  12.             manifest: require('./dll/utils.manifest.json')  
  13.         }),  
  •  注意:在webpack_dll.config.js文件中,DllPlugin中的name參數必須和output.library中的一致;因為DllPlugin的name參數影響輸出的manifest.json的name;而webpack.pro.config.js中的DllReferencePlugin會讀取manifest.json的name,將值作為從全局變量中獲取動態鏈接庫內容時的全局變量名
  •  執行構建

        1. webpack --progress --colors --config ./webpack.dll.config.js

        2. webpack --progress --colors --config ./webpack.prod.js

  •  html中引入dll.js文件
  •  構建時間對比:["11593ms","10654ms","8334ms"]

HappyPack并行構建優化

  •  核心原理:將webpack中最耗時的loader文件轉換操作任務,分解到多個進程中并行處理,從而減少構建時間。
  •  HappyPack
  •  接入HappyPack

        1. 安裝:npm i -D happypack

        2. 重新配置rules部分,將loader交給happypack來分配: 

  1. const HappyPack = require('happypack');  
  2. const happyThreadPool = HappyPack.ThreadPool({size: 5}); //構建共享進程池,包含5個進程  
  3. ...  
  4. plugins: [  
  5.     // happypack并行處理  
  6.     new HappyPack({  
  7.         // 用ID來代表當前HappyPack是用來處理一類特定文件的,與rules中的use對應  
  8.         id: 'babel',  
  9.         loaders: ['babel-loader?cacheDirectory'],//默認設置loader處理  
  10.         threadPool: happyThreadPool,//使用共享池處理  
  11.     }),  
  12.     new HappyPack({  
  13.         // 用唯一ID來代表當前HappyPack是用來處理一類特定文件的,與rules中的use對應  
  14.         id: 'css',  
  15.         loaders: [  
  16.             'css-loader',  
  17.             'postcss-loader',  
  18.             'sass-loader'],  
  19.             threadPool: happyThreadPool  
  20.     })  
  21. ],  
  22. module: {  
  23.     rules: [  
  24.     {  
  25.         test: /\.(js|jsx)$/,  
  26.         use: ['happypack/loader?id=babel'],  
  27.         exclude: path.resolve(__dirname,' ./node_modules'),  
  28.     },  
  29.     {  
  30.         test: /\.(scss|css)$/,  
  31.         //使用的mini-css-extract-plugin提取css此處,如果放在上面會出錯  
  32.         use: [MiniCssExtractPlugin.loader,'happypack/loader?id=css'],  
  33.         include:[  
  34.             path.resolve(__dirname,'src'),  
  35.             path.join(__dirname, './node_modules/antd')  
  36.         ]  
  37.     },  
  •  參數:

        1. threads:代表開啟幾個子進程去處理這一類文件,默認是3個;

        2. verbose:是否運行HappyPack輸出日志,默認true;

        3. threadPool:代表共享進程池,即多個HappyPack示例使用一個共享進程池中的子進程去處理任務,以防資源占有過多

代碼壓縮用ParallelUglifyPlugin代替自帶的 UglifyJsPlugin插件

  •  自帶的JS壓縮插件是單線程執行的,而webpack-parallel-uglify-plugin可以并行的執行
  •  配置參數:

        1. uglifyJS: {}:用于壓縮 ES5 代碼時的配置,Object 類型

        2. test: /.js$/g:使用正則去匹配哪些文件需要被 ParallelUglifyPlugin 壓縮,默認是 /.js$/

        3. include: []:使用正則去包含被壓縮的文件,默認為 [].

        4. exclude: []: 使用正則去包含不被壓縮的文件,默認為 []

        5. cacheDir: '':緩存壓縮后的結果,下次遇到一樣的輸入時直接從緩存中獲取壓縮后的結果并返回,默認不會緩存,開啟緩存設置一個目錄路徑

        6. workerCount: '':開啟幾個子進程去并發的執行壓縮。默認是當前運行電腦的 CPU 核數減去1

        7. sourceMap: false:是否為壓縮后的代碼生成對應的Source Map, 默認不生成 

  1. ...  
  2. minimizer: [  
  3.     // webpack:production模式默認有配有js壓縮,但是如果這里設置了css壓縮,js壓縮也要重新設置,因為使用minimizer會自動取消webpack的默認配置  
  4.     new optimizeCssPlugin({  
  5.         assetNameRegExp: /\.css$/g,  
  6.         cssProcessor: require('cssnano'),  
  7.         cssProcessorOptions: { discardComments: { removeAll: true } },  
  8.         canPrint: true  
  9.     }),  
  10.     new ParallelUglifyPlugin({  
  11.         cacheDir: '.cache/',  
  12.         uglifyJS:{  
  13.             output: {  
  14.            // 是否輸出可讀性較強的代碼,即會保留空格和制表符,默認為輸出,為了達到更好的壓縮效果,可以設置為false  
  15.                 beautify: false,  
  16.         //是否保留代碼中的注釋,默認為保留,為了達到更好的壓縮效果,可以設置為false  
  17.                 comments: false  
  18.             },  
  19.             compress: {  
  20.             //是否在UglifyJS刪除沒有用到的代碼時輸出警告信息,默認為輸出  
  21.                 warnings: false,  
  22.             //是否刪除代碼中所有的console語句,默認為不刪除,開啟后,會刪除所有的console語句  
  23.                 drop_console: true,  
  24.             //是否內嵌雖然已經定義了,但是只用到一次的變量,比如將 var x = 1y = x, 轉換成 y = 1, 默認為否  
  25.                 collapse_vars: true,  
  26.             }  
  27.         }  
  28. }),  
  •  構建結果對比:["11593ms","10654ms","8334ms","7734ms"]
  •  整體構建速度從12000ms降到現在的8000ms

 “積跬步、行千里”—— 持續更新中~,喜歡的話留下個贊和關注哦!

  •  往期經典好文:
    •   你不知道的CORS跨域資源共享
    •   Koa日志中間件封裝開發(log4js)
    •   團隊合作必備的Git操作
    •   使用pm2部署node生產環境

 

 

責任編輯:龐桂玉 來源: segmentfault
相關推薦

2019-03-26 10:02:16

WebpackJavascript前端

2020-09-19 21:26:56

webpack

2021-09-06 06:45:06

Webpack優化MindMaster

2021-12-24 08:01:44

Webpack優化打包

2021-11-09 09:57:46

Webpack 前端分包優化

2021-07-05 14:55:28

前端優化圖片

2021-09-03 09:44:13

移動端性能優化U-APM

2015-09-16 15:21:23

Android性能優化內存

2021-08-02 10:50:57

性能微服務數據

2015-09-16 14:37:50

Android性能優化運算

2015-09-16 13:54:30

Android性能優化渲染

2015-09-16 15:48:55

Android性能優化電量

2022-05-14 08:35:12

Webpack前端

2018-07-18 12:12:20

Spark大數據代碼

2022-09-15 17:31:15

性能優化小程序Taro3

2017-04-18 21:27:01

AndroidAPP構建速度

2024-01-03 08:20:05

Java字符串性能

2019-03-05 10:20:49

WebWebpack分離數據

2017-07-11 15:50:11

前端webpack2優化

2019-03-18 15:35:45

WebCSS前端
點贊
收藏

51CTO技術棧公眾號

欧美激情亚洲| 美女网站视频在线| 日韩不卡一区二区三区| 揄拍成人国产精品视频| 日本77777| 免费看电影在线| 久久久久国产精品麻豆| 91精品久久久久| 国产一级视频在线播放| 欧美人与牛zoz0性行为| 这里只有精品视频在线观看| 日韩国产一级片| 你懂的在线视频| 国产一区二区在线视频| 午夜免费在线观看精品视频| 亚洲色图 激情小说| 亚洲一区二区三区四区电影| 色呦呦日韩精品| xxxxxx在线观看| 蜜桃免费在线| 成人午夜大片免费观看| 国产精品久久久久秋霞鲁丝| 日韩激情一区二区三区| 欧美午夜精彩| 日韩精品视频免费在线观看| 精品国产乱码久久久久久1区二区| 色网在线免费观看| 亚洲精品免费在线观看| 久中文字幕一区| 成人黄色免费视频| 麻豆久久久久久久| 欧美专区第一页| 麻豆视频在线观看| 日韩综合在线| 国产亚洲日本欧美韩国| 好吊色视频一区二区三区| а天堂中文最新一区二区三区| 大桥未久av一区二区三区| 欧美 国产 精品| 1pondo在线播放免费| 91视频精品在这里| 国产一区在线观| 国产偷人妻精品一区二区在线| 日韩电影免费在线| 欧美在线观看网站| 久久婷婷国产麻豆91| 91精品91| 欧美猛少妇色xxxxx| 911国产在线| 国产精品91一区二区三区| 国产午夜精品视频| 男生草女生视频| 久久99国产精一区二区三区| 亚洲精品久久久久久久久久久久| 69xxx免费视频| 亚洲乱码一区| 亚洲第一精品夜夜躁人人爽| 三级黄色片播放| 日韩精品亚洲专区在线观看| 欧美一区二区三区四区久久| 中文字幕第三区| 国内自拍视频在线播放| 99久久久久| 日日噜噜噜夜夜爽亚洲精品| 日本女人性生活视频| 日韩夫妻性生活xx| 中文字幕在线成人| 青青青手机在线视频| 午夜激情久久| 久久国产精品网站| 欧美日韩免费做爰视频| 亚洲综合色网| 久久久久久伊人| 日韩熟女精品一区二区三区| 男人的天堂亚洲在线| 欧美在线视频网站| 综合久久中文字幕| 精品写真视频在线观看| 亚洲xxxx18| 懂色av蜜臀av粉嫩av分享吧| 成人av在线资源网| 奇米视频888战线精品播放| 国产一区二区影视| 椎名由奈av一区二区三区| 国产在线拍揄自揄拍无码| 日本中文字幕中出在线| 狠狠躁夜夜躁人人躁婷婷91| 久久精品网站视频| 国产精品一区三区在线观看| 精品国产99国产精品| wwwwxxxx国产| 国产精品久久占久久| 欧美激情精品久久久久| 成年人视频在线免费看| 免费在线观看一区二区三区| 亚洲专区在线视频| 天堂中文资源在线| 中文字幕一区二区三区在线播放| 丰满的少妇愉情hd高清果冻传媒| 吞精囗交69激情欧美| 欧美日韩国产一区二区三区地区| 波多野结衣三级视频| 图片婷婷一区| 九九综合九九综合| 欧美精品一二三四区| 久久99精品国产麻豆婷婷洗澡| 国产精品毛片一区视频| 69久久久久| 精品日本高清在线播放| 色噜噜狠狠一区二区三区狼国成人| 91蝌蚪精品视频| 在线视频欧美日韩| 中文字幕在线字幕中文| 激情综合网av| 日本在线一区| cao在线视频| 制服丝袜亚洲网站| 国内精品久久99人妻无码| 亚洲精品成人无限看| 国产成人小视频在线观看| 国产极品久久久| 中文字幕乱码亚洲精品一区| 久久综合久久网| 国外成人福利视频| 亚洲人成网在线播放| 国产精品第一页在线观看| 黄色正能量网站| 18国产精品| 最近2019年日本中文免费字幕| 国产精品6666| 国产精品一区2区| 一本一道久久久a久久久精品91| 国产免费拔擦拔擦8x在线播放| 欧美一级爆毛片| 国产日产精品一区二区三区的介绍| 久久精品免费| 玛丽玛丽电影原版免费观看1977 | 3d动漫一区二区三区| 亚洲一区二区三区久久久| 亚洲午夜精品久久久久久性色| 中日韩黄色大片| 99久久久国产精品免费蜜臀| 国产成人一区二区三区别| 榴莲视频成人app| 久久精品国产亚洲精品2020| 中文字幕永久在线视频| 国产午夜亚洲精品午夜鲁丝片| 日本一区二区黄色| 任你躁在线精品免费| 97色在线视频| 性xxxx视频| 天天综合天天综合色| www.啪啪.com| 亚洲人体偷拍| 精品国产福利| 自拍视频在线看| 国产手机视频精品| 成人公开免费视频| 国产日韩欧美电影| 国产美女18xxxx免费视频| 天天综合精品| 97影院在线午夜| 国产网红女主播精品视频| 日韩欧美国产一二三区| av资源吧首页| 99久久夜色精品国产网站| 欧美一区二区三区在线视频| av影片在线播放| 自拍欧美日韩| 国产精品一区二区你懂得| av中文资源在线资源免费观看| 亚洲的天堂在线中文字幕| 国产精品999在线观看| www成人在线观看| 美女黄色片视频| 99热国内精品| 国产欧美精品一区二区色综合| 国产综合动作在线观看| 国产欧洲在线| 伊人久久久久久久久久久久久 | 日韩一级不卡| 欧美精品一区二区三区久久| yiren22亚洲综合| 成人444kkkk在线观看| 肥臀熟女一区二区三区| 欧美色欧美亚洲高清在线视频| 精品国产成人亚洲午夜福利| 狠狠色综合播放一区二区| 17c丨国产丨精品视频| 香蕉视频一区二区三区| 国产精品免费看久久久香蕉| 1stkiss在线漫画| 日韩h在线观看| 夜夜嗨av禁果av粉嫩avhd| 亚洲精品成人在线| 右手影院亚洲欧美| 精品在线你懂的| 蜜臀av色欲a片无码精品一区| 国产一区二区在线| 亚洲一区二区三| 欧美羞羞视频| 久久99精品久久久久久琪琪| 精华区一区二区三区| 日韩免费在线观看| 国产精品suv一区| 亚洲精品福利视频网站| 91网站免费入口| 国产成人三级在线观看| 无码无遮挡又大又爽又黄的视频| 四虎成人av| 久久婷婷人人澡人人喊人人爽| 日韩av黄色| 日本成人激情视频| 欧美aaa免费| 深夜成人在线观看| 理论视频在线| 精品999在线播放| 国产一区二区视频免费观看| 欧美日韩在线观看视频| 麻豆精品国产免费| 久久久久久久久久久久久久久99| 少妇熟女视频一区二区三区| 久久av中文字幕片| 成人在线观看黄| 国产日韩一区二区三区在线| 91成人在线视频观看| 欧美一站二站| 麻豆传媒一区| 国产在线观看免费视频今夜| 亚洲第一二三区| 91丨九色丨国产| 亚瑟国产精品| 国产精品三级网站| 综合久久2023| 97在线视频免费| 狂野欧美激情性xxxx欧美| 日韩在线视频国产| 春暖花开成人亚洲区| 日韩电影中文 亚洲精品乱码| 亚洲黄色小说网| 日韩欧美在线观看一区二区三区| 91久久精品无码一区二区| 欧美三片在线视频观看| 国产精品无码一区| 91高清视频免费看| 男人的天堂av网站| 色综合一区二区| 免费黄色av片| 欧日韩精品视频| 波多野结衣在线电影| 色视频欧美一区二区三区| 国产农村妇女aaaaa视频| 福利视频第一区| 美女又爽又黄免费视频| 日韩欧美在线视频免费观看| 四虎精品永久在线| 色哟哟在线观看一区二区三区| 欧美日韩一二三四区| 色综合天天性综合| 国产免费一级视频| 欧美在线观看禁18| 免费精品一区二区| 欧美在线观看一区二区| 亚洲一区二区三区高清视频| 91精品国产综合久久久蜜臀粉嫩| 国产精品毛片一区视频播| 91精品国产丝袜白色高跟鞋| 成人h动漫精品一区二区无码| 欧美精品一区二区久久久| 日韩美女一级视频| 伊人久久久久久久久久久久久| 欧美18hd| 久久久久久久久国产精品| 秋霞伦理一区| 国产精品中文久久久久久久| 99精品女人在线观看免费视频| 91大片在线观看| 色老板在线视频一区二区| 日本一区二区在线视频观看| 五月婷婷亚洲| 亚洲美免无码中文字幕在线 | 欧美黑人又粗又大又爽免费| 日日夜夜精品视频天天综合网| 久久久久久三级| 国产精品99久久久久| 中文字幕在线播放视频| 中文一区一区三区高中清不卡| 成人涩涩小片视频日本| 亚洲一区二区三区爽爽爽爽爽| 综合激情网五月| 欧美日韩国产首页在线观看| 亚洲av无码国产综合专区| 亚洲精品天天看| 麻豆传媒视频在线观看| 久久久之久亚州精品露出| 国产成人免费9x9x人网站视频| 91手机在线视频| 国产欧美日韩精品一区二区免费| 国产一二三四五| 天堂一区二区在线| 午夜影院免费观看视频| 久久色视频免费观看| 懂色av懂色av粉嫩av| 日韩欧美在线视频观看| 国产男女裸体做爰爽爽| 精品中文视频在线| a级在线观看| 国产精品高清网站| 精品少妇3p| 男人j进女人j| 奇米色一区二区| 中出视频在线观看| 亚洲黄色性网站| 中文字幕+乱码+中文| 日韩电影中文字幕| 午夜激情在线| 国产精品美女午夜av| 欧美人妖视频| 久久这里只有精品18| 麻豆极品一区二区三区| 精品国产无码在线观看| 亚洲电影中文字幕在线观看| 91国内精品视频| 在线播放日韩精品| 色戒汤唯在线观看| 国产视频不卡| 欧美日本一区二区高清播放视频| 天堂av8在线| 国产精品人妖ts系列视频| 日韩欧美成人一区二区三区| 精品国产免费久久 | 亚洲人成影院在线观看| 超碰中文字幕在线| 精品免费国产二区三区| 国产在线激情| 91精品久久久久久久久久久| 国产成人三级| 日本黄色三级大片| a级高清视频欧美日韩| 懂色av.com| 亚洲变态欧美另类捆绑| 欧美伦理免费在线| av免费精品一区二区三区| 亚洲欧美色图| 超碰中文字幕在线观看| 亚洲三级免费观看| 99久久夜色精品国产亚洲| 久久久国产视频| 国产精品一区二区三区www| 天天干天天色天天爽| 国内成人自拍视频| 中文字幕手机在线观看| 日韩欧美一区二区视频| 丁香花在线电影小说观看| 成人在线视频网址| 亚洲精品欧美| 久久国产精品影院| 色婷婷国产精品| 9色在线观看| 国产一区二区在线免费| 91精品一区国产高清在线gif| 四虎国产精品免费| 亚洲电影激情视频网站| 日本一二三区在线视频| 国产精品观看在线亚洲人成网| 成人精品天堂一区二区三区| 污网站免费在线| 亚洲精品视频在线| 日本激情一区二区| 欧美中文字幕在线播放| 成人在线免费视频观看| 久久久久久久久久一区| 亚洲欧美激情视频在线观看一区二区三区| 性欧美18一19性猛交| 69久久夜色精品国产7777| 你懂的一区二区三区| 亚洲欧美自偷自拍另类| 亚洲三级在线免费观看| 神马午夜一区二区| 国产精品成久久久久三级| 亚洲香蕉av| 91av在线免费| 欧美日韩久久不卡| 麻豆福利在线观看| 日本精品二区| 国产精品一区在线观看你懂的| 亚洲天堂日韩av| yellow中文字幕久久| 大奶一区二区三区| 亚洲欧美另类动漫| 一区二区三区不卡在线观看| 欧美女优在线| 亚洲最大av网| 免费永久网站黄欧美| 国产免费美女视频| 亚洲精品久久7777777| 亚洲香蕉久久| 日韩亚洲在线视频| 亚洲在线中文字幕| 成年人视频在线看|