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

Webpack教程:如何從頭開始設置 webpack 5

開發 前端
webpack 對我來說曾經是一個怪物般存在一樣,因為它有太多太多的配置項,相反,使用像create-react-app腳手架可以很輕松創建項目,所以有一段時間內,我會盡量避免使用 webpack,因為它看起來既復雜又望而卻步 ??

[[352566]]

本文已經過原作者 Tania Rascia 授權翻譯。

webpack 對我來說曾經是一個怪物般存在一樣,因為它有太多太多的配置項,相反,使用像create-react-app腳手架可以很輕松創建項目,所以有一段時間內,我會盡量避免使用 webpack,因為它看起來既復雜又望而卻步 ??

如果你們不習慣從頭開始設置 webpack 來使用Babel、TypeScript、Sass、React或Vue,或者不知道為什么要使用 webpack,那么這篇文章是你的最佳選擇。就像所有的事情一樣,一旦你深入學習,你會發現它并不是那么可怕,只有幾個主要的概念需要學習掌握。

如果你是從 webpack 4 升級到 webpack 5,這里有一些注意事項:

  • webpack-dev-server命令現在換成webpack-serve
  • file-loader、raw-loader和url-loader不是必需的,可以使用內置的Asset Modules
  • 節點 polyfill 不再可用,例如,如果遇到stream錯誤,則可以將stream-browserify包作為依賴項添加,并將{stream:'stream-browserify'}添加到webpack配置中的alias屬性。

什么是 webpack?

現在,大多數網站不再只是單單的由原生JS+純HTML編寫的,還涉及一些瀏覽器無法理解的語言,如果項目大,文件多,對應的體積就大。所以要壓縮文件和翻譯成所有瀏覽器都能理解的東西,這就是webpack的用武之地。

webpack 可以看做是模塊打包器:它做的事情是,分析你的項目結構,找到JavaScript模塊以及其它的一些瀏覽器不能直接運行的拓展語言(Scss,TypeScript等),并將其打包為合適的格式以供瀏覽器使用。

對于開發,webpack 還提供了一個開發服務器,它可以在我們保存時動態地更新模塊和樣式。vue create和create-response-app本質上都依賴于 webpack。

webpac k可以做很多事情,本文只是幫助大家熟悉一些主要概念并進行一些手動的配置。

安裝

首先,創建一個目錄webpack-tutorial,相關命令如下:

  1. mkdir webpack-tutorial 
  2. cd webpack-tutorial 
  3. npm init -y  // 創建默認的 package.json 

安裝webpack和webpack-cli:

  1. npm i -D webpack webpack-cli 

接著,創建目錄 src,并在其里面創建 index.js,內容如下:

  1. console.log('Interesting!'

基本配置

在項目的根目錄中創建一個webpack.config.js。

Entry

entry是配置模塊的入口,可抽象成輸入,Webpack 執行構建的第一步將從入口開始搜尋及遞歸解析出所有入口依賴的模塊。

entry 配置是必填的,若不填則將導致 Webpack 報錯退出。這里,我們將src/index.js做為入口點。

  1. const path = require('path'
  2.  
  3. module.exports = { 
  4.   entry: { 
  5.     main: path.resolve(__dirname, './src/index.js'), 
  6.   }, 

Output

配置 output 選項可以控制 webpack 如何向硬盤寫入編譯文件。注意,即使可以存在多個入口起點,但只指定一個輸出配置。這里指定輸出的路徑為 'dist':

  1. module.exports = { 
  2.   /* ... */ 
  3.  
  4.   output: { 
  5.     path: path.resolve(__dirname, './dist'), 
  6.     filename: '[name].bundle.js'
  7.   }, 

現在,我們具有構建捆綁包所需的最低配置。在package.json中,我們可以創建一個運行webpack命令的構建腳本。

  1. "scripts": { 
  2.   "build""webpack" 

現在可以運行它了:

  1. npm run build 

現在在 dist 目錄會生成一個 main.bundle.js 文件

插件

webpack有一個插件接口,這使得它更加靈活。內部webpack代碼和第三方擴展使用插件,有一些主要的方法幾乎每個webpack項目都會用到。

HTML 模板文件

目前,我們有一個隨機的bundle文件,但它對我們還不是很有用。如果需要使用main.bundle.js,就要借助 HTML頁面來加載這個 JS 包作為腳本。我們希望HTML文件自動引入這個生成 js 文件,所以我們將使用html-webpack-plugin創建一個HTML模板。

安裝一下:

  1. npm i -D html-webpack-plugin 

在src文件夾中創建一個template.html文件,這里,我們自定義一個title,內容如下:

src/template.html

  1. <!DOCTYPE html> 
  2. <html lang="en"
  3.   <head> 
  4.     <title><%= htmlWebpackPlugin.options.title %></title> 
  5.   </head> 
  6.  
  7.   <body> 
  8.     <div id="root"></div> 
  9.   </body> 
  10. </html> 

創建配置的plugins屬性,然后將插件,文件名添加到輸出(index.html),并鏈接到將基于該模板的模板文件。

  1. const path = require('path'
  2. const HtmlWebpackPlugin = require('html-webpack-plugin'
  3.  
  4. module.exports = { 
  5.   /* ... */ 
  6.  
  7.   plugins: [ 
  8.     new HtmlWebpackPlugin({ 
  9.       title: 'webpack Boilerplate'
  10.       template: path.resolve(__dirname, './src/template.html'), // template file 
  11.       filename: 'index.html', // output file 
  12.     }), 
  13.   ], 

現在再次運行構建,會看到dist文件夾現在包含一個index.html,里面也自動引入了我們打包好的 js 文件。用瀏覽器打開 index.html,會在控制臺看到 Interesting!。

接著,在index.js中我們動態插入一些 dom 元素到頁面中,內容如下:

  1. // Create heading node 
  2. const heading = document.createElement('h1'
  3. heading.textContent = 'Interesting!' 
  4.  
  5. // Append heading node to the DOM 
  6. const app = document.querySelector('#root'
  7. app.append(heading) 

重新構建,在進入 dist 目錄下面,用 http-server 運行 html 文件。

  1. http-server 

可以在頁面上看到,我們注入的 "Interesting!",還會注意到捆綁文件已縮小。

注意:在安裝HtmlWebpackPlugin后,你會看到一個DeprecationWarning,因為插件在升級到webpack 5后還沒有完全擺脫deprecation警告。

Clean

我們還需要設置clean-webpack-plugin,在每次構建后清除dist文件夾中的所有內容。這對于確保不遺留任何舊數據很重要。

clean-webpack-plugin-刪除/清理構建文件夾

  1. const path = require('path'
  2.  
  3. const HtmlWebpackPlugin = require('html-webpack-plugin'
  4. const {CleanWebpackPlugin} = require('clean-webpack-plugin'
  5.  
  6. module.exports = { 
  7.   /* ... */ 
  8.  
  9.   plugins: [ 
  10.     /* ... */ 
  11.     new CleanWebpackPlugin(), 
  12.   ], 

Modules and Loaders

webpack 使用 loader 預處理一些加載的文件,如 js 文件、靜態資源(如圖像和CSS樣式)和編譯器(如TypeScript和Babel)。webpack 5也有一些內置的資產加載器。

在我們的項目中,有一個HTML文件,該文件可以加載并引入一些 JS ,但實際上并沒有執行任何操作。那么這個webpack配置要做的主要事情是什么?

  • 將 JS 編譯為瀏覽器可以理解的版本
  • 導入樣式并將 SCSS 編譯為 CSS
  • 導入圖像和字體
  • (可選)設置React或Vue

Babel (JavaScript)

Babel是一個工具,可讓使用最新的 JS 語法。

建立一個規則來檢查項目中(node_modules之外)的任何.js文件,并使用babel-loader進行轉換。Babel 還有一些其他的依賴項:

  • babel-loader-使用 Babel 和 webpack 傳輸文件。
  • @babel/core-將ES2015+ 轉換為向后兼容的 JavaScript
  • @babel/preset-env-Babel 的智能默認設置
  • @babel/plugin-proposal-class-properties-自定義 Babel 配置的示例(直接在類上使用屬性)
  1. npm i -D babel-loader @babel/core @babel/preset-env @babel/preset-env @babel/plugin-proposal-class-properties 

webpack.config.js

  1. module.exports = { 
  2.   /* ... */ 
  3.  
  4.   module: { 
  5.     rules: [ 
  6.       // JavaScript 
  7.       { 
  8.         test: /\.js$/, 
  9.         exclude: /node_modules/, 
  10.         use: ['babel-loader'], 
  11.       }, 
  12.     ], 
  13.   }, 

如果是 TypeScript 項目,使用的是typescript-loader而不是babel-loader。

現在Babel已經設置好了,但是我們的Babel插件還沒有。可以在index.js中添加一些新的語法來證明它還不能正常工作。

  1. // 創建沒有構造函數的類屬性 
  2. class Game { 
  3.   name = 'Violin Charades' 
  4. const myGame = new Game() 
  5. // 創建 p 節點 
  6. const p = document.createElement('p'
  7. p.textContent = `I like ${myGame.name}.` 
  8.  
  9. const heading = document.createElement('h1'
  10. heading.textContent = 'Interesting!' 
  11.  
  12. const app = document.querySelector('#root'
  13. app.append(heading, p) 

要解決這個問題,只需在項目的根目錄中創建一個.babelrc文件。可以使用preset-env和plugin-proposal-class-properties添加更多默認值。

  1.   "presets": ["@babel/preset-env"], 
  2.   "plugins": ["@babel/plugin-proposal-class-properties"

Images

假設我們需要引用一張圖片并直接導入到 JS 文件中,這樣是無法正常工作的。為了演示,創建 src/ images 并向其中添加圖像,然后嘗試將其導入到index.js文件中。

src/index.js

  1. import example from './images/example.png' 
  2.  
  3. /* ... */ 

運行構建時,再次看到錯誤:

webpack有一些內置的asset modules ,可用于靜態資源。對于圖像類型,我們將使用asset/resource,注意,這里是一個type,而不是loader。

webpack.config.js

  1. module.exports = { 
  2.   /* ... */ 
  3.   module: { 
  4.     rules: [ 
  5.       // Images 
  6.       { 
  7.         test: /\.(?:ico|gif|png|jpg|jpeg)$/i, 
  8.         type: 'asset/resource'
  9.       }, 
  10.     ], 
  11.   }, 

構建后,可以在dist文件夾查看。

字體和內聯

webpack 還有一個asset module ,可以使用asset/inline內聯某些數據,例如svgs和字體。

src/index.js

  1. import example from './images/example.svg' 
  2.  
  3. /* ... */ 

webpack.config.js

  1. module.exports = { 
  2.   /* ... */ 
  3.   module: { 
  4.     rules: [ 
  5.       // Fonts and SVGs 
  6.       { 
  7.         test: /\.(woff(2)?|eot|ttf|otf|svg|)$/, 
  8.         type: 'asset/inline'
  9.       }, 
  10.     ], 
  11.   }, 

Styles

同樣的需要使用 style loader才能在腳本中執行類似import 'file.css'的操作。

現在很多人都在使用CSS-in-JS、styled-components和其他工具來將樣式引入到他們的 JS 應用程序中。

當網站只有一個 CSS 文件,僅能夠加載一個CSS文件就足夠了。但如果想使用PostCSS,為了能在任何瀏覽器中使用所有最新的CSS特性。或者想使用Sass, CSS預處理器,那就需要使用其它的 loader 處理。

我想使用這三種方法——在Sass中編寫,在PostCSS中處理,以及編譯到CSS。這需要引入一些加載器和依賴項。

  • sass-loader — 加載 SCSS 并編譯為CSS
  • node-sass — Node Sass
  • postcss-loader — 使用 PostCSS 處理 CSS
  • css-loader — 解析 css import
  • style-loader —— 將CSS注入到DOM中
  1. npm i -D sass-loader postcss-loader css-loader style-loader postcss-preset-env node-sass 

就像Babel一樣,PostCSS 也需要一個配置文件 postcss.config.js,在根目錄中創建它,并輸入以下內容:

postcss.config.js

  1. module.exports = { 
  2.   plugins: { 
  3.     'postcss-preset-env': { 
  4.       browsers: 'last 2 versions'
  5.     }, 
  6.   }, 

為了測試 Sass 和 PostCSS 是否正常工作,創建 src/styles/main.scss,并輸入以下內容:

src/styles/main.scss

  1. $font-size: 1rem; 
  2. $font-color: lch(53 105 40); 
  3.  
  4. html { 
  5.   font-size: $font-size
  6.   color: $font-color; 

現在,將文件導入index.js并添加四個 loader 。它們從最后編譯到第一個,因此列表中最后一個是sass-loader,因為需要編譯,然后是PostCSS,然后是CSS,最后是style-loader,它將CSS注入到DOM 中。

src/index.js

  1. import './styles/main.scss' 
  2.  
  3. /* ... */ 

webpack.config.js

  1. module.exports = { 
  2.   /* ... */ 
  3.   module: { 
  4.     rules: [ 
  5.       // CSS, PostCSS, and Sass 
  6.       { 
  7.         test: /\.(scss|css)$/, 
  8.         use: ['style-loader''css-loader''postcss-loader''sass-loader'], 
  9.       }, 
  10.     ], 
  11.   }, 

現在,重新構建時,項目中已經應用了Sass和PostCSS。

開發

每次進行更新時都要運行npm run build,站點越大,構建所需的時間就越長,這樣就十分的煩瑣。為此可以為 webpack 設置兩種配置:

  • 生產配置,用于最小化,優化和刪除所有源映射
  • 開發配置,該配置在服務器中運行webpack,每次更改都會更新,并具有源映射

開發模式下是在內存中運行所有內容,而不是構建一個dist文件,需要安裝 webpack-dev-server

  1. npm i -D webpack-dev-server 

出于演示目的,我們可以僅將開發配置添加到正在構建的當前webpack.config.js文件中并對其進行測試。但是,我們開發一般要創建兩個配置文件:一個生產環境用的 mode: production,一個開發環境用的mode: development。

  1. const webpack = require('webpack'
  2.  
  3. module.exports =  { 
  4.   /* ... */ 
  5.   mode: 'development'
  6.   devServer: { 
  7.     historyApiFallback: true
  8.     contentBase: path.resolve(__dirname, './dist'), 
  9.     opentrue
  10.     compress: true
  11.     hot: true
  12.     port: 8080, 
  13.   }, 
  14.  
  15.   plugins: [ 
  16.     /* ... */ 
  17.     // Only update what has changed on hot reload 
  18.     new webpack.HotModuleReplacementPlugin(), 
  19.   ], 
  20. }) 

我們添加mode: development,并創建devServer屬性,其中,默認端口將為8080,自動打開瀏覽器窗口,并使用hot-module-placement,這需要webpack.HotModuleReplacementPlugin插件。這樣模塊執行更新而無需完全重新加載頁面-因此,如果你更新某些樣式,則這些樣式將發生變化,并且不用重新加載整個 JS ,大大加快了開發速度。

現在,可以使用webpack serve命令來啟動項目。

package.json

  1. "scripts": { 
  2.   "start""webpack serve" 
  1. npm start 

運行此命令時,將在瀏覽器中自動彈出一個指向localhost:8080的鏈接。現在,您可以更新Sass和JavaScript,并觀看其動態更新。

總結

我用 Babel,Sass,PostCSS,生產優化和開發服務器創建了可用于生產的webpack 5樣板,其中包含本文的所有內容,但會涉及更多細節。從這里,可以輕松設置React,Vue,Typescript或其他任何您想要的東西。

項目地址:webpack 5 boilerplate

看看它,擺弄它,享受它!

作者:Tania Rascia 譯者:前端小智 來源:taniarascia

原文:https://www.taniarascia.com/how-to-use-webpack/

本文轉載自微信公眾號「大遷世界」,可以通過以下二維碼關注。轉載本文請聯系公眾號。

 

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2023-05-24 16:20:39

DevOpsCI/CD 管道軟件開發

2013-01-08 11:02:26

IBMdW

2013-05-23 10:10:53

PHP5.5PHP編譯php

2024-03-20 12:44:35

AI訓練

2009-05-08 09:40:07

網易魔獸暴雪

2022-11-23 16:20:12

GPU編程流和事件開發

2021-06-04 22:43:32

Python本地搜索

2022-06-01 23:21:34

Python回歸樹數據

2021-07-06 14:21:05

物聯網智慧城市網絡安全

2021-02-20 21:29:40

GitHub代碼開發者

2023-02-06 16:01:26

數據中心服務器

2017-02-23 08:45:36

Python決策樹數據集

2020-06-11 08:32:50

Python遺傳算法代碼

2023-08-11 17:30:54

決策樹機器學習算法

2024-05-27 00:00:01

2022-09-20 10:18:05

論文技術

2024-09-27 11:46:51

2022-11-14 10:49:33

Linux發行版

2024-09-26 16:51:23

2022-03-08 09:16:20

webpack前端開發
點贊
收藏

51CTO技術棧公眾號

久久精彩视频| 欧美黑人性视频| 中文字幕第17页| 综合图区亚洲| www.日韩精品| 国产精品美女av| 91精品国产高清一区二区三蜜臀| 国产成人澳门| 91福利在线导航| 亚洲精品偷拍视频| 免费观看国产精品| 蜜臀av一区二区在线观看 | 中文字幕人妻无码系列第三区| 久久国产精品黑丝| 国产日韩精品一区二区浪潮av| 92国产精品视频| 少妇一级淫片免费放中国| 欧美日韩激情| 制服丝袜亚洲网站| 亚洲熟妇av一区二区三区| 91一区二区三区在线| 国产三级欧美三级| 国产精品一区二区欧美| 一级黄色片视频| 免费亚洲一区| 国内精品视频在线| 国产大学生自拍| 欧美少妇xxxx| 精品少妇一区二区三区免费观看 | 久久sese| 亚洲成人tv网| 777久久精品一区二区三区无码| 美国成人毛片| av亚洲精华国产精华| 91欧美精品成人综合在线观看| 日本久久综合网| 亚洲国内精品| 欧美寡妇偷汉性猛交| 国产jizz18女人高潮| 国产精品一国产精品| 亚洲国产欧美一区| 免费观看污网站| 久久影院一区二区三区| 欧美探花视频资源| 国产性生交xxxxx免费| 在线女人免费视频| 天天色图综合网| 欧美午夜小视频| 国精产品一区一区三区mba下载| 国产精品国产精品国产专区不片| 亚洲国产精品综合| 超碰国产在线| 国产精品人成在线观看免费| 日本黄网免费一区二区精品| 青梅竹马是消防员在线| 91在线高清观看| 精品一区二区三区免费毛片| 色屁屁草草影院ccyycom| 国产精品888| 动漫精品视频| 色婷婷av一区二区三区之红樱桃 | 中文字幕无码日韩专区免费 | www.亚洲一二| 亚洲精品国产suv| 国产福利在线观看视频| 牛牛影视久久网| 亚洲免费人成在线视频观看| 欧美性xxxx图片| 欧美**vk| 三级精品视频久久久久| 一级片一级片一级片| 午夜欧美在线| 欧美激情免费在线| 日韩精品视频免费看| 日韩午夜在线电影| 欧美制服第一页| 日本一区二区三区久久| 狠狠色丁香久久婷婷综合丁香| 91免费福利视频| 亚洲欧美强伦一区二区| 91天堂素人约啪| 亚洲a∨一区二区三区| 黄色网在线免费观看| 亚洲自拍与偷拍| 国产极品尤物在线| 99久久婷婷国产综合精品首页| 色婷婷亚洲一区二区三区| 中文字幕av专区| 日韩中文字幕免费在线| 少妇一级淫片免费看| 91丨porny丨首页| 亚洲精品久久久久久下一站| av在线天堂网| 日韩理论电影中文字幕| 一区二区成人精品| 国产性xxxx| 午夜一级在线看亚洲| 国产精品免费一区豆花| jizz中国少妇| 91视频观看免费| 超碰在线免费观看97| 2021天堂中文幕一二区在线观| 在线视频亚洲一区| 少妇熟女视频一区二区三区 | 国内精品第一页| 韩国精品一区二区三区六区色诱| 91av资源在线| 午夜视频在线观看一区二区| 少妇一级淫免费播放| 国产精品巨作av| www日韩欧美| 国产精品美女久久久久av爽| 精品伊人久久久久7777人| 久久福利电影| 在线中文字幕第一页| 色狠狠综合天天综合综合| 欧美性猛交乱大交| 99久久精品网站| 欧美在线激情网| 丰满人妻一区二区三区免费| 国产精品你懂的| 精品国产成人av在线免| www.丝袜精品| 欧美日韩成人在线播放| 亚洲一区二区影视| 国产性做久久久久久| 成人免费播放器| 国产日本亚洲| 中文字幕欧美视频在线| 国产成人综合欧美精品久久| 懂色av一区二区三区免费观看| 亚洲国产一区二区三区在线播| wwww亚洲| 精品美女一区二区三区| 成年人一级黄色片| 另类小说欧美激情| 视频一区二区精品| 麻豆国产在线| 日韩av综合中文字幕| 国产无遮挡又黄又爽在线观看| 国产一区二区三区免费播放| 亚洲一区在线直播| 久久天堂av| 亚洲色图欧美制服丝袜另类第一页| 国产乡下妇女做爰视频| 国产成人亚洲综合a∨猫咪| 波多野结衣激情| 国产成人久久精品一区二区三区| 色一情一乱一区二区| 中文字幕 自拍偷拍| 欧美国产精品专区| 91亚洲免费视频| 日韩精品久久| 国产日韩欧美在线播放| 秋霞午夜理伦电影在线观看| 制服.丝袜.亚洲.中文.综合| 波多野结衣家庭教师在线观看 | 在线观看免费看片| 五月开心六月丁香综合色啪 | 18禁免费无码无遮挡不卡网站| 成人性生交大片免费看中文视频| 久久噜噜噜精品国产亚洲综合 | 中文字幕亚洲国产| 一级黄在线观看| 亚洲男同性恋视频| 熟女人妻一区二区三区免费看| 红桃视频亚洲| 欧美精品久久| 91成人抖音| 久久九九精品99国产精品| 国产伦理吴梦梦伦理| 亚洲欧美偷拍另类a∨色屁股| 真实乱偷全部视频| 在线日韩av| 美女三级99| 成人福利片在线| zzijzzij亚洲日本成熟少妇| 日本污视频网站| 捆绑调教一区二区三区| 超碰成人在线免费观看| 日韩精品视频在线看| 久久久久国产精品一区| 天天色棕合合合合合合合| 欧美日韩中国免费专区在线看| 青青草视频成人| 日一区二区三区| 中文字幕精品在线播放| 精品嫩草影院| 国产精品男人爽免费视频1| 97超碰资源站在线观看| 亚洲大胆美女视频| 欧美日韩 一区二区三区| 综合久久一区二区三区| 中国一级特黄录像播放| 蜜桃视频一区二区| 国产美女作爱全过程免费视频| 亚洲人成精品久久久| 91久久精品国产91性色| 中文字幕乱码在线播放| 久久精品99国产精品酒店日本| 国内精品国产成人国产三级| 91激情五月电影| 久草视频在线免费看| 国产欧美一区二区精品忘忧草| 熟女人妻一区二区三区免费看| 日韩在线卡一卡二| 国产3p露脸普通话对白| 99久久99热这里只有精品| 久久五月天婷婷| 欧美电影院免费观看| 日韩av手机在线观看| 日本动漫同人动漫在线观看| 最近2019中文字幕第三页视频| 午夜视频免费在线| 欧美一级久久久| 青青视频在线免费观看| 亚洲国产精品久久人人爱蜜臀| 黄大色黄女片18免费| 91在线精品一区二区三区| 波多野结衣三级视频| 久久99蜜桃精品| 久草综合在线观看| 在线亚洲观看| 日韩精品一区二区三区四| 久久一区91| 日韩女优中文字幕| 日韩啪啪网站| 国产免费一区| 91在线一区| 亚洲综合日韩在线| 亚洲国产精选| 国产美女久久久| 成人国产精品入口免费视频| 国产国产精品人在线视| 伊人成综合网站| 国内精品久久久久伊人av| 久久国产精品黑丝| 久久久久久久久久国产精品| 羞羞的视频在线观看| 久久人人爽亚洲精品天堂| 自拍视频在线播放| 在线播放国产精品| www.亚洲.com| 中文字幕日韩av| 日本中文字幕电影在线免费观看 | 在线亚洲免费视频| av毛片在线免费观看| 五月婷婷综合网| 中文字幕激情小说| 福利一区福利二区微拍刺激| 日韩欧美中文字幕一区二区| 五月开心婷婷久久| 亚洲黄色小说图片| 欧美性猛xxx| 自拍偷拍校园春色| 欧美性大战久久| 91精品在线视频观看| 欧美二区乱c少妇| 国产片在线播放| 精品国内片67194| 亚洲人妻一区二区| 亚洲欧美激情四射在线日| 国产精品一区二区婷婷| 日韩一区二区三区在线播放| 拍真实国产伦偷精品| 欧美人交a欧美精品| aa级大片免费在线观看| 欧美亚洲在线视频| 亚洲成人va| 亚洲一区亚洲二区亚洲三区| 成人在线tv视频| 欧美午夜精品理论片a级大开眼界| 精品国产一区二区三区久久久樱花| 视频一区二区精品| 欧美一区二区| 国模无码视频一区二区三区| 日韩精品成人一区二区三区| 91精产国品一二三产区别沈先生| 成人免费视频app| 人妻一区二区视频| 亚洲三级理论片| 日本中文字幕在线免费观看| 在线观看亚洲成人| 国产av无码专区亚洲a∨毛片| 亚洲精美色品网站| 91美女视频在线| 久久久久久香蕉网| 亚洲第一会所| 97se在线视频| 精品freesex老太交| 亚洲五码在线观看视频| 亚洲一区视频| 91在线第一页| 久久久久久久综合| 国产三级国产精品国产国在线观看| 午夜一区二区三区在线观看| 在线播放国产一区| 精品国产一区二区三区四区四| 福利视频在线导航| 国内精品视频在线| 亚洲伦理久久| 欧美日韩免费高清| 亚洲调教视频在线观看| 91日韩视频在线观看| 波多野结衣在线aⅴ中文字幕不卡| 欧美精品日韩在线| 午夜国产精品一区| 国产尤物在线观看| 亚洲美女www午夜| 黄网站在线观| 91亚洲人电影| 欧美韩国日本在线观看| 国产aaa一级片| 成人在线视频一区| 国产福利视频网站| 欧美午夜精品理论片a级按摩| 天天射天天色天天干| 欧美高清视频一区二区| 在线成人免费| 偷拍视频一区二区| 性色一区二区三区| 少妇熟女视频一区二区三区| 中文字幕一区二区日韩精品绯色| 人人妻人人爽人人澡人人精品| 亚洲国产精品美女| 羞羞视频在线免费国产| 国产一区视频在线| 欧美日韩国产在线观看网站 | 在线视频不卡国产| 天堂蜜桃一区二区三区| 国产 中文 字幕 日韩 在线| 一级中文字幕一区二区| 国产精品无码久久av| 在线观看日韩av| 国产亚洲一区二区手机在线观看 | 黄色小视频在线免费观看| 欧美激情一区二区三区高清视频| 高清一区二区三区av| 一级一片免费播放| 久久国产精品72免费观看| 性爱在线免费视频| 欧美性xxxxx极品少妇| sese一区| 国产精品香蕉av| 欧美艳星介绍134位艳星| 日韩一级在线免费观看| 久久精品亚洲国产奇米99 | 欧美性大战久久久久久久蜜臀| 蜜桃视频在线观看网站| 国产福利精品在线| sdde在线播放一区二区| 中文字幕在线观看第三页| 国产欧美一区二区精品久导航 | 日韩三级精品电影久久久| 麻豆视频在线免费观看| 91免费欧美精品| 欧美福利电影在线观看| 免费在线观看日韩av| 一区二区三区日韩欧美| 欧美一级淫片免费视频魅影视频| 欧美精品18videos性欧| 国内精品麻豆美女在线播放视频| 99热亚洲精品| 久久久亚洲国产美女国产盗摄| 人人妻人人爽人人澡人人精品| 日韩一区二区福利| 日韩激情综合| 欧美爱爱视频免费看| 久久精品免费在线观看| 一本色道久久综合熟妇| 欧美成在线视频| 免费看久久久| 99久久国产宗和精品1上映| 国产精品国产成人国产三级| 国产极品久久久| 97成人精品视频在线观看| 国产精品一线天粉嫩av| 亚洲第一天堂久久| 亚洲午夜av在线| 国内三级在线观看| 成人国产精品久久久| 精品动漫3d一区二区三区免费版| 无套内谢大学处破女www小说| 欧美日韩一二三| 欧美xxxx黑人又粗又长| 欧美1o一11sex性hdhd| 激情国产一区二区| 日本网站在线播放| 丝袜亚洲欧美日韩综合| 久久丝袜视频| 免费在线中文字幕| 国产精品日韩二区| 天堂成人国产精品一区| 99鲁鲁精品一区二区三区| 亚洲国内精品在线| 国产情侣一区二区三区| 日本xxxxxxxxxx75| 国产精品不卡在线| 污污的视频网站在线观看| 国产日韩亚洲欧美|