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

還學不會webpack?看這篇!

開發(fā) 前端
想要繼續(xù)做好前端,webpack是必須得跨過的一道坎,其實掌握webpack并不難,只是我們沒有找到正確的方法。本文就是我自己在學習webpack時的一點心得體會,供大家參考。

[[266801]]

Webpack已經(jīng)流行好久了,但很多同學使用webpack時還是一頭霧水,一下看到那么多文檔、各種配置、各種loader、plugin立馬就暈頭轉(zhuǎn)向了。我也不例外,以至于很長一段時間對webpack都是一知半解的狀態(tài)。但是想要繼續(xù)做好前端,webpack是必須得跨過的一道坎,其實掌握webpack并不難,只是我們沒有找到正確的方法。本文就是我自己在學習webpack時的一點心得體會,供大家參考。

什么是webpack?

一句話概括:webpack是一個模塊打包工具(module bundler)。重點在于兩個關(guān)鍵詞“模塊”和“打包”。什么是模塊呢?我們回顧一下曾經(jīng)的前端開發(fā)方式,js文件通過script標簽靜態(tài)引入,js文件之間由于沒有強依賴關(guān)系,如果文件1要用到文件2的某些方法或變量,則必須將文件1放到文件2后面加載。隨著項目的增大,js文件之間的依賴關(guān)系越發(fā)錯綜復雜,維護難度也越來越高。這樣的困境驅(qū)使著前端工程師們不斷探索新的開發(fā)模式,從后端、app的開發(fā)模式中我們獲得靈感,為什么不能引入“模塊”的概念讓js文件之間可以相互引用呢?模塊1要使用模塊2的功能,只需要在該模塊1中明確引用模塊2就行了,而不用擔心它們的排列順序。基于這種理念,CommonJS和 AMD規(guī)范被創(chuàng)造了出來,然后有了require.js、system.js這樣的前端模塊加載工具和node的模塊系統(tǒng),直到現(xiàn)在流行的es6 module。

模塊的引入解決了文件之間依賴引用的問題,而打包則解決了文件過多的問題。當項目規(guī)模增大,模塊的數(shù)量數(shù)以千計,瀏覽器如果要加載如此多的文件,頁面加載的速度勢必會受影響,而bundler可以把多個關(guān)聯(lián)的文件打包到一起從而大量減少文件的數(shù)量提高網(wǎng)頁加載性能。提供模塊化的開發(fā)方式和編譯打包功能就是webpack的核心,其他很多功能都圍繞它們展開。

核心概念

Module(模塊)

對于webpack,模塊不僅僅是javascript模塊,它包括了任何類型的源文件,不管是圖片、字體、json文件都是一個個模塊。Webpack支持以下的方式引用模塊:

  •  ES2015 import 方法
  •  CommonJs require() 方法
  •  AMD define 和 require 語法
  •  css/sass/less文件中的 @import 語法
  •  url(...) 和 <img src=...> 中的圖片路徑

Dependency Graph(依賴關(guān)系圖)

所謂的依賴關(guān)系圖是webpack根據(jù)每個模塊之間的依賴關(guān)系遞歸生成的一張內(nèi)部邏輯圖,有了這張依賴關(guān)系圖,webpack就能按圖索驥把所有需要模塊打包成一個bundle文件了。

Entry(入口)

繪制依賴關(guān)系圖的起始文件被稱為entry。默認的entry為 ./src/index.js,或者我們可以在配置文件中配置。entry可以為一個也可以為多個。

單個entry: 

  1. module.exports = {  
  2.   entry: './src/index.js'  

或者 

  1. module.exports = {  
  2.   entry: {  
  3.     main: './src/index.js'  
  4.   }  
  5. }; 

多個entry,一個chunk

我們也可以指定多個獨立的文件為entry,但將它們打包到一個chunk中,此種方法被稱為 multi-main entry,我們需要傳入文件路徑的數(shù)組: 

  1. module.exports = {  
  2.   entry: ['./src/index.js', './src/index2.js', './src/index3.js']  

但是改種方法的靈活性和擴展性有限,因此并不推薦使用。

多個entry,多個chunk

如果有多個entry,并且每個entry生成對應的chunk,我們需要傳入object: 

  1. module.exports = {  
  2.   entry: {  
  3.     app: './src/app.js',  
  4.     admin: './src/admin.js'  
  5.   }  
  6. }; 

這種寫法有***的靈活性和擴展性,支持和其他的局部配置(partial configuration)進行合并。比如將開發(fā)環(huán)境和生產(chǎn)的配置分離,并抽離出公共的配置,在不同的環(huán)境下運行時再將環(huán)境配置和公共配置進行合并。

Output(出口)

有了入口,對應的就有出口。顧名思義,出口就是webpack打包完成的輸出,output定義了輸出的路徑和文件名稱。Webpack的默認的輸出路徑為 ./dist/main.js。同樣,我們可以在配置文件中配置output: 

  1. module.exports = {  
  2.   entry: './src/index.js',  
  3.   output: {  
  4.     path: __dirname + '/dist',  
  5.     filename: 'bundle.js'  
  6.   }  
  7. }; 

多個entry的情況

當有多個entry的時候,一個entry應該對應一個output,此時輸出的文件名需要使用替換符(substitutions)聲明以確保文件名的唯一性,例如使用入口模塊的名稱: 

  1. module.exports = {  
  2.   entry: {  
  3.     app: './src/app.js',  
  4.     search: './src/search.js'  
  5.   },  
  6.   output: {  
  7.     filename: '[name].js',  
  8.     path: __dirname + '/dist'  
  9.   }  

最終在 ./dist 路徑下面會生成 app.js和search.js兩個bundle文件。

Loader(加載器)

Webpack自身只支持加載js和json模塊,而webpack的理念是讓所有的文件都能被引用和加載并生成依賴關(guān)系圖,所以loader出場了。Loader能讓webpack能夠去處理其他類型的文件(比如圖片、字體文件、xml)。我們可以在配置文件中這樣定義一個loader:

webpack.config.js 

  1. module.exports = {  
  2.   module: {  
  3.     rules: [  
  4.       {   
  5.         test: /\.txt$/,   
  6.         use: 'raw-loader'   
  7.       }  
  8.     ]  
  9.   }  
  10. }; 

其中test定義了需要被轉(zhuǎn)化的文件或者文件類型,use定義了對該文件進行轉(zhuǎn)化的loader的類型。該條配置相當于告訴webpack當遇到一個txt文件的引用時(使用require或者import進行引用),先用raw-loader轉(zhuǎn)換一下該文件再把它打包進bundle。

還有其他各種類型的loader,比如加載css文件的css-loader,加載圖片和字體文件的file-loader,加載html文件的html-loader,將***JS語法轉(zhuǎn)換成ES5的babel-loader等等。完整列表請參考 webpack loaders。

Plugin(插件)

Plugin和loader是兩個比較混淆和模糊的概念。Loader是用來轉(zhuǎn)換和加載特定類型的文件,所以loader的執(zhí)行層面是單個的源文件。而plugin可以實現(xiàn)的功能更強大,plugin可以監(jiān)聽webpack處理過程中的關(guān)鍵事件,深度集成進webpack的編譯器,可以說plugin的執(zhí)行層面是整個構(gòu)建過程。Plugin系統(tǒng)是構(gòu)成webpack的主干,webpack自身也基于plugin系統(tǒng)搭建,webpack有豐富的內(nèi)置插件和外部插件,并且允許用戶自定義插件。官方列出的插件有 這些。

與loader不同,使用plugin我們必須先引用該插件,例如: 

  1. const webpack = require('webpack'); // 用于引用webpack內(nèi)置插件  
  2. const HtmlWebpackPlugin = require('html-webpack-plugin'); // 外部插件  
  3. module.exports = {  
  4.   plugins: [  
  5.     new webpack.HotModuleReplacementPlugin(),  
  6.     new HtmlWebpackPlugin({template: './src/index.html'})  
  7.   ]  
  8. }; 

實踐

了解webpack的基本概念之后,我們通過實踐來加深理解。接下來,我們使用webpack搭建一個簡易的react腳手架。

創(chuàng)建項目

首先創(chuàng)建react-webpack-starter項目并使用 npm init 初始化。

安裝依賴

安裝react 

  1. npm i react react-dom 

安裝webpack相關(guān) 

  1. npm i -D webpack webpack-cli webpack-dev-server html-webpack-plugin style-loader css-loader 

安裝webpack-cli后可以在命令行中執(zhí)行webpack命令;webpack-dev-server提供了簡易的web服務器,并且在修改文件之后自動執(zhí)行webpack的編譯操作并自動刷新瀏覽器,省去了重復的手動操作;html-webpack-plugin用于自動生成index.html文件,并且在index.html中自動添加對bundle文件的引用;style-loader和css-loader用于加載css文件。

安裝babel相關(guān)

由于react中使用了class, import這樣的es6的語法,為了提高網(wǎng)站的瀏覽器兼容性,我們需要用babel轉(zhuǎn)換一下。 

  1. npm i -D @babel/core @babel/preset-env @babel/preset-react babel-loader 

其中@babel/core是babel的核心模塊,包含了babel的核心功能;@babel/preset-env支持轉(zhuǎn)換ES6以及更新的js語法,并且可根據(jù)需要兼容的瀏覽器類型選擇加載的plugin從而精簡生成的代碼;@babel/preset-react包含了babel轉(zhuǎn)換react所需要的plugin;babel-loader是webpack的babel加載器。

配置webpack

在項目根目錄下面新建webpack.config.js,內(nèi)容如下:

webpack.config.js 

  1. const path = require('path');  
  2. const HtmlWebpackPlugin = require('html-webpack-plugin');  
  3. module.exports = {  
  4.   entry: './src/index.js',  
  5.   output: {  
  6.     path: path.resolve(__dirname, 'dist'),  
  7.     filename: 'bundle.js'  
  8.   },  
  9.   module: {  
  10.     rules: [  
  11.       {  
  12.         test: /\.js$/,  
  13.         exclude: /node_module/,  
  14.         use: 'babel-loader'  
  15.       },  
  16.       {  
  17.         test: /\.css$/,  
  18.         use: ['style-loader', 'css-loader'] // 注意排列順序,執(zhí)行順序與排列順序相反  
  19.       }  
  20.     ]  
  21.   },  
  22.   plugins: [  
  23.     new HtmlWebpackPlugin({  
  24.       template: './src/index.html'  
  25.     })  
  26.   ]  

其中HtmlWebpackPlugin使用自定義的模版來生成html 文件,模版的內(nèi)容如下:

./src/index.html 

  1. <!DOCTYPE html>  
  2. <html lang="en">  
  3. <head>  
  4.   <meta charset="UTF-8">  
  5.   <meta name="viewport" content="width=device-width, initial-scale=1.0">  
  6.   <meta http-equiv="X-UA-Compatible" content="ie=edge">  
  7.   <title>My React App</title>  
  8. </head>  
  9. <body>  
  10.   <div id="app"></div>  
  11. </body>  
  12. </html> 

配置babel

在項目根目錄下面新建.babelrc文件,配置我們安裝的兩個babel preset:

.babelrc 

  1.  
  2.   "presets": [  
  3.     "@babel/preset-env",  
  4.     "@babel/preset-react"  
  5.   ]  

生成react應用根節(jié)點

./src/index 

  1. import React from 'react';  
  2. import ReactDOM from 'react-dom';  
  3. import App from './components/App';  
  4. ReactDOM.render(<App />, document.getElementById('app')); 

./src/component/App.js 

  1. import React, { Component } from 'react';  
  2. import './App.css';  
  3. export default class App extends Component {  
  4.   render() {  
  5.     return (  
  6.       <div>  
  7.         my react webpack starter  
  8.       </div>  
  9.     )  
  10.   }  

./src/components/App.css 

  1. body{  
  2.   font-size: 60px;  
  3.   font-weight: bolder;  
  4.   color: red;  
  5.   text-transform: uppercase;  

配置 package.json

***,在package.json文件里面加上兩個scripts,用來運行開發(fā)服務器和打包:

package.json 

  1. "scripts": {  
  2.   "start": "webpack-dev-server --mode development --open --hot",  
  3.   "build": "webpack --mode production"  

注意,我們啟用了webpack-dev-server的模塊熱更新功能(HMR),進一步提高我們的開發(fā)效率。

到此一個最簡版本的react腳手架就搭建完成了,我們運行一下看看效果:

是不是沒有想象中的那么難呢?當然webpack還有很多其他的功能和特性需要掌握,希望在參考本文之后大家進一步的學習更加順利 。

責任編輯:龐桂玉 來源: segmentfault
相關(guān)推薦

2020-07-16 09:07:19

LVS硬件服務器

2021-11-10 07:47:48

Traefik邊緣網(wǎng)關(guān)

2021-07-13 12:21:34

PythonRPC通信

2017-09-06 15:15:48

Python正則表達式

2019-08-16 09:41:56

UDP協(xié)議TCP

2021-09-30 07:59:06

zookeeper一致性算法CAP

2022-03-29 08:23:56

項目數(shù)據(jù)SIEM

2021-05-07 07:52:51

Java并發(fā)編程

2022-01-26 11:14:32

Vim編輯器Linux

2020-06-24 09:00:43

分庫分表MySQL

2024-08-27 11:00:56

單例池緩存bean

2017-03-30 22:41:55

虛擬化操作系統(tǒng)軟件

2023-09-25 08:32:03

Redis數(shù)據(jù)結(jié)構(gòu)

2023-10-04 00:32:01

數(shù)據(jù)結(jié)構(gòu)Redis

2021-07-28 13:29:57

大數(shù)據(jù)PandasCSV

2019-08-28 09:52:40

MySQL事務

2023-11-07 07:46:02

GatewayKubernetes

2021-09-10 13:06:45

HDFS底層Hadoop

2019-08-23 08:49:05

運維正則表達式Regex

2019-08-23 08:47:04

JavaScript運維技能
點贊
收藏

51CTO技術(shù)棧公眾號

国产v综合ⅴ日韩v欧美大片| 欧美精品一区二区三区在线播放| 性欧美.com| 国产片在线播放| 伊人久久综合| 亚洲人成免费电影| 天天爽夜夜爽视频| 偷拍视频一区二区三区| 国产精品二三区| 国产欧美日韩一区| 国内av在线播放| 欧美日本一区| 有码中文亚洲精品| 亚洲成年人在线观看| jizzjizz少妇亚洲水多| 午夜精品视频一区| 一区二区成人国产精品| 午夜影院免费体验区| 精品一区二区三区免费观看| 992tv在线成人免费观看| 美女福利视频网| 亚洲丝袜美腿一区| 欧美大片免费久久精品三p| 日韩精品一区二区三区不卡| 在线免费av导航| 国产日产精品一区| 国产精品v欧美精品∨日韩| 亚洲最大成人在线视频| 国产情侣一区| 久久久久久久999精品视频| 麻豆精品国产免费| 精品国产网站| 精品视频在线播放色网色视频| 手机精品视频在线| 巨大黑人极品videos精品| 欧美性猛交xxxx黑人| 精品人妻大屁股白浆无码| 免费在线你懂的| 国产免费成人在线视频| 欧美日韩中文国产一区发布| 日韩一卡二卡在线| 粉嫩av一区二区三区粉嫩| 成人综合网网址| 一区二区视频免费| 蜜臀av亚洲一区中文字幕| 国产999精品久久久影片官网| 国产中文字字幕乱码无限| 综合国产精品| 欧美另类极品videosbest最新版本 | 在线观看成人动漫| 日韩免费一级| 日韩一二三区不卡| 欧美国产日韩在线视频| 99久热在线精品视频观看| 欧美日韩一区二区在线观看 | 麻豆国产尤物av尤物在线观看| 欧美r级电影| 丝袜美腿精品国产二区| 91狠狠综合久久久久久| 日韩在线看片| 久久久精品久久久久| 日韩在线不卡av| 影音先锋日韩精品| 欧美高清视频在线观看| 国产成人精品亚洲男人的天堂| 亚洲高清免费| 欧美在线视频网| 无码人妻av一区二区三区波多野| 日韩成人一级片| 国产欧美一区二区| 国产又粗又猛又爽又黄的| 国产在线观看一区二区| 99蜜桃在线观看免费视频网站| 超碰人人人人人人| gogo大胆日本视频一区| 欧美日韩电影一区二区| av男人的天堂在线| 亚洲欧美色综合| 你真棒插曲来救救我在线观看| 成人bbav| 欧美自拍偷拍一区| 图片区乱熟图片区亚洲| 国产厕拍一区| 亚洲日本欧美日韩高观看| 国产视频123区| 欧美性久久久| 日本中文字幕不卡免费| 国产精品福利电影| 99久久精品情趣| 亚洲日本理论电影| av小说在线播放| 在线亚洲+欧美+日本专区| 中文字幕色网站| 久久婷婷国产| 最近2019免费中文字幕视频三| 欧美成人精品激情在线视频| 欧美亚洲一区二区三区| 成人免费观看a| 日本黄色三级视频| 国产精品二三区| 奇米精品一区二区三区| 亚洲国产综合在线观看| 国产丝袜视频一区| 国产精品久久久精品四季影院| 国产手机视频一区二区| 成人黄色影片在线| 欧洲免费在线视频| 伊人夜夜躁av伊人久久| 牛夜精品久久久久久久| 韩国精品福利一区二区三区| 日韩中文字幕网| 精品国产午夜福利| 国产福利91精品一区二区三区| 久久国产精品高清| 亚洲小说区图片| 欧美中文字幕一二三区视频| 亚洲香蕉中文网| 一区二区三区网站 | 日韩亚洲欧美视频| 日本欧美一区| 日韩精品在线观看网站| 久久久久久国产精品视频| 捆绑紧缚一区二区三区视频| 免费电影一区| 999av小视频在线| 日韩午夜激情av| 萌白酱视频在线| 水野朝阳av一区二区三区| 国产欧美日韩伦理| av电影在线地址| 日韩欧美在线影院| 免费看特级毛片| 免费一区二区视频| 久久伊人一区| 日韩在线伦理| 亚洲国产精品系列| 国产精品日日夜夜| 成人综合婷婷国产精品久久| 黑人巨茎大战欧美白妇| 亚洲精品成人一区| y97精品国产97久久久久久| 在线播放精品视频| 日本一区二区三区国色天香 | 日韩久久免费电影| 日韩精品手机在线| 9i在线看片成人免费| 日本a视频在线观看| 加勒比视频一区| 高清亚洲成在人网站天堂| 亚洲av少妇一区二区在线观看| 亚洲猫色日本管| 少妇欧美激情一区二区三区| 欧美成人久久| 国产亚洲第一区| 华人av在线| 亚洲欧美制服第一页| 免费观看日批视频| 亚洲国产高清aⅴ视频| 精品999在线| 天天久久综合| av一区二区在线看| 台湾佬中文娱乐网欧美电影| 亚洲人成五月天| 一级片一区二区三区| 亚洲欧美日韩系列| 亚洲少妇中文字幕| 国产亚洲精品自拍| 先锋在线资源一区二区三区| 久久亚洲精品人成综合网| 久久视频在线直播| 蜜桃av噜噜一区二区三区麻豆| 欧美日韩国产一中文字不卡| 免费视频91蜜桃| 极品少妇一区二区三区精品视频| 国产内射老熟女aaaa| 精品亚洲精品| 国产精品丝袜久久久久久不卡| 欧美jizz18hd性欧美| 日韩欧美在线1卡| 国产成人免费看| 中文字幕不卡在线播放| 香蕉视频在线观看黄| 中文高清一区| 亚洲巨乳在线观看| a级日韩大片| 国产成一区二区| 日本三级在线视频| 亚洲电影免费观看高清完整版在线| 久久久久久久久黄色| 亚洲青青青在线视频| 亚洲国产精品无码久久久久高潮| 日本在线播放一区二区三区| 超级碰在线观看| 欧美日韩播放| 亚洲自拍在线观看| 国产超碰精品| 欧美国产一区二区三区| 成年午夜在线| 亚洲福利在线视频| 一级黄色a视频| 亚洲sss视频在线视频| 成人黄色短视频| aaa亚洲精品一二三区| 深夜做爰性大片蜜桃| 久久精品亚洲| 国产va亚洲va在线va| 日本高清免费电影一区| 狠狠色狠狠色综合人人| 成人精品视频在线观看| 日本国产高清不卡| 国产嫩草在线视频| 久久久国产精彩视频美女艺术照福利| 天堂中文资源在线| 日韩精品中文字幕一区| 一本一道精品欧美中文字幕| 一本一道久久a久久精品| 久久中文字幕在线观看| 一区二区中文视频| 日本理论中文字幕| 91丨porny丨国产入口| 天堂va欧美va亚洲va老司机| 久久se精品一区二区| 日韩中文字幕二区| 亚洲视频大全| 日韩一级片免费视频| 伊人久久大香线| 免费在线观看污污视频| 精品欧美激情在线观看| 免费中文日韩| 巨人精品**| 国产精品久久精品国产| 一区二区亚洲视频| 亚洲最大的av网站| 日韩美香港a一级毛片| 国产精品久久久久999| 伊人色综合一区二区三区影院视频| 欧美黑人极品猛少妇色xxxxx| 成人黄色在线电影| 久久伊人精品天天| 成人短视频在线观看| 久久亚洲综合国产精品99麻豆精品福利 | 精品亚洲欧美一区| 91女神在线观看| 奇米888四色在线精品| 亚洲 中文字幕 日韩 无码| 久久久777| 久久精品午夜福利| 奇米一区二区三区| xxx国产在线观看| 久久国产精品色| 中文字幕色网站| 国产精品亚洲第一区在线暖暖韩国| 91 视频免费观看| 国产又粗又猛又爽又黄91精品| 天天操狠狠操夜夜操| 激情综合色综合久久综合| 亚洲制服在线观看| 风间由美一区二区三区在线观看| 久草免费资源站| aaa欧美色吧激情视频| 国产免费看av| 国产欧美日韩在线视频| 开心激情五月网| 亚洲蜜臀av乱码久久精品| 久久综合久久鬼| 亚洲1区2区3区4区| www.久久视频| 欧美精品乱码久久久久久| 精品人妻aV中文字幕乱码色欲| 欧美大片在线观看| 六十路在线观看| 中文字幕一区二区精品| 最新av在线播放| 97久久伊人激情网| 成人国产精品| 成人av电影免费| 综合国产视频| 一区二区三区四区视频在线观看| 欧美高清日韩| 国产精品免费入口| 久久精品999| 91九色蝌蚪porny| 国产欧美日韩麻豆91| 亚洲二区在线播放| 午夜精品123| 夜夜爽8888| 亚洲福利视频在线| 91青青在线视频| 欧美风情在线观看| 美女写真久久影院| 91在线在线观看| 深夜福利久久| 人妻av无码专区| 免费高清视频精品| 手机在线成人av| 日韩一区有码在线| 国产成人一级片| 日韩欧美色电影| av电影在线观看| 97在线免费视频| 国产一区精品二区| 日韩精品一区二区三区四区五区| 欧美一区二区三区久久精品茉莉花 | 超碰在线网址| 国产精品久久久久久搜索| 日韩在线网址| 亚洲欧美国产不卡| a91a精品视频在线观看| 免费不卡av网站| 中文在线免费一区三区高中清不卡| 久久综合综合久久| 欧美精品自拍偷拍| 嫩草在线播放| 亚洲91精品在线观看| 久久久久九九精品影院| 五月天婷亚洲天综合网鲁鲁鲁| 亚洲人妖在线| 初高中福利视频网站| 国产精品无遮挡| 久久久黄色大片| 亚洲第一免费网站| 日本片在线观看| 91精品视频专区| 欧美h版在线| 奇米影视四色在线| 国产日韩欧美高清在线| 久久久久久久久久久影院| 欧美精品一区二区不卡| 天堂va在线| 91久久精品国产91久久性色tv| 欧美疯狂party性派对| 99视频在线视频| 国产午夜亚洲精品理论片色戒 | 国产日韩一区二区三区| 欧美成人中文| 久久久久99人妻一区二区三区| 综合欧美一区二区三区| 国产乱叫456在线| 久久久www成人免费精品| 91精品国产一区二区在线观看| 亚洲欧洲日夜超级视频| 免费观看成人鲁鲁鲁鲁鲁视频| 五月婷六月丁香| 欧美日韩国产精品自在自线| 国产精品久久久久一区二区国产 | 超碰97久久国产精品牛牛| 激情成人开心网| 国产一区二区免费在线| 日本老熟俱乐部h0930| 欧美第一区第二区| sm捆绑调教国产免费网站在线观看| 国产精品香蕉视屏| 亚洲美女一区| 免费看污黄网站在线观看| 欧美日韩在线一区| 东凛在线观看| 成人免费看黄网站| 欧美色图首页| 88av在线播放| 色屁屁一区二区| 91九色在线porn| 91aaaa| 国产精品一区毛片| 久久成人激情视频| 欧美疯狂性受xxxxx喷水图片| 超碰porn在线| 国产精品区一区| 久久高清免费观看| 国产在视频线精品视频| 日韩免费观看高清完整版在线观看| bl视频在线免费观看| 快播日韩欧美| 男女男精品视频网| 久久久久黄色片| 亚洲图片欧洲图片av| 999精品嫩草久久久久久99| 日本精品久久久久久久久久| 久久综合色天天久久综合图片| 中文字幕日产av| 欧美国产日韩视频| 精品国产一区二区三区久久久蜜臀| 热久久久久久久久| 天天综合网 天天综合色| av在线收看| 高清av免费一区中文字幕| 免费一区视频| 国产女人被狂躁到高潮小说| 日韩高清av在线| 国产精品99久久免费| 久久亚洲中文字幕无码| 中文字幕亚洲精品在线观看| 日韩在线视频观看免费| 国产精品视频一| 99成人在线| frxxee中国xxx麻豆hd| 日韩精品中文字幕在线| 麻豆一二三区精品蜜桃| 日本久久精品一区二区| 亚洲日本在线天堂| 久久久久久久久亚洲精品|