午夜勾魂曲-午夜福利自怕-午夜福利在线观看6080-午夜福利院电影-国产精品毛片AV久久97-国产精品麻豆高潮刺激A片

初學者應該看的 Webpack 完整指南(2020)

2020-7-19    seo達人

我們應該學習 webpack 嗎 ?

如今,CLI工具(如create-react-app或Vue -cli)已經為我們抽象了大部分配置,并提供了合理的默認設置。


即使那樣,了解幕后工作原理還是有好處的,因為我們遲早需要對默認值進行一些調整。


在本文中中,我們會知道 webpack可以做什么,以及如何配置它以滿足我們的日常需求。


什么是 webpack?

作為前端開發人員,我們應該熟悉 module 概念。 你可能聽說過 AMD模塊,UMD,Common JS還有ES模塊。


webpack是一個模塊綁定器,它對模塊有一個更廣泛的定義,對于webpack來說,模塊是:


Common JS modules

AMD modules

CSS import

Images url

ES modules

webpack 還可以從這些模塊中獲取依賴關系。


webpack 的最終目標是將所有這些不同的源和模塊類型統一起來,從而將所有內容導入JavaScript代碼,并最生成可以運行的代碼。


entry

Webpack的 entry(入口點)是收集前端項目的所有依賴項的起點。 實際上,這是一個簡單的 JavaScript 文件。


這些依賴關系形成一個依賴關系圖。


Webpack 的默認入口點(從版本4開始)是src/index.js,它是可配置的。 webpack 可以有多個入口點。


Output

output是生成的JavaScript和靜態文件的地方。


Loaders

Loaders 是第三方擴展程序,可幫助webpack處理各種文件擴展名。 例如,CSS,圖像或txt文件。


Loaders的目標是在模塊中轉換文件(JavaScript以外的文件)。 文件成為模塊后,webpack可以將其用作項目中的依賴項。


Plugins

插件是第三方擴展,可以更改webpack的工作方式。 例如,有一些用于提取HTML,CSS或設置環境變量的插件。


Mode

webpack 有兩種操作模式:開發(development)和生產(production)。 它們之間的主要區別是生產模式自動生成一些優化后的代碼。


Code splitting

代碼拆分或延遲加載是一種避免生成較大包的優化技術。


通過代碼拆分,開發人員可以決定僅在響應某些用戶交互時加載整個JavaScript塊,比如單擊或路由更改(或其他條件)。


被拆分的一段代碼稱為 chunk。


Webpack入門

開始使用webpack時,先創建一個新文件夾,然后進入該文件中,初始化一個NPM項目,如下所示:


mkdir webpack-tutorial && cd $_


npm init -y

接著安裝 webpack,webpack-cli和 webpack-dev-server:


npm i webpack webpack-cli webpack-dev-server --save-dev

要運行 webpack,只需要在 package.json 配置如下命令即可:


 "scripts": {

   "dev": "webpack --mode development"

 },

通過這個腳本,我們指導webpack在開發模式下工作,方便在本地工作。


Webpack 的第一步

在開發模式下運行 webpack:


npm run dev

運行完后會看到如下錯誤:


ERROR in Entry module not found: Error: Can't resolve './src'

webpack 在這里尋找默認入口點src/index.js,所以我們需要手動創建一下,并輸入一些內容:


mkdir src


echo 'console.log("Hello webpack!")' > src/index.js

現在再次運行npm run dev,錯誤就沒有了。 運行的結果生成了一個名為dist/的新文件夾,其中包含一個名為main.js的 JS 文件:


dist

└── main.js

這是我們的第一個webpack包,也稱為output。


配置 Webpack

對于簡單的任務,webpack無需配置即可工作,但是很快我們就會遇到問題,一些文件如果沒有指定的 loader 是沒法打包的。所以,我們需要對 webpack進行配置,對于 webpack 的配置是在 webpack.config.js 進行的,所以我們需要創建該文件:


touch webpack.config.js

Webpack 用 JavaScript 編寫,并在無頭 JS 環境(例如Node.js)上運行。 在此文件中,至少需要一個module.exports,這是的 Common JS 導出方式:


module.exports = {

 //

};

在webpack.config.js中,我們可以通過添加或修改來改變webpack的行為方式


entry point

output

loaders

plugins

code splitting

例如,要更改入口路徑,我們可以這樣做


const path = require("path");


module.exports = {

 entry: { index: path.resolve(__dirname, "source", "index.js") }

};

現在,webpack 將在source/index.js中查找要加載的第一個文件。 要更改包的輸出路徑,我們可以這樣做:


const path = require("path");


module.exports = {

 output: {

   path: path.resolve(__dirname, "build")

 }

}

這樣,webpack將把最終生成包放在build中,而不是dist.(為了簡單起見,在本文中,我們使用默認配置)。


打包 HTML

沒有HTML頁面的Web應用程序幾乎沒有用。 要在webpack中使用 HTML,我們需要安裝一個插件html-webpack-plugin:


npm i html-webpack-plugin --save-dev

一旦插件安裝好,我們就可以對其進行配置:


const HtmlWebpackPlugin = require("html-webpack-plugin");

const path = require("path");


module.exports = {

 plugins: [

   new HtmlWebpackPlugin({

     template: path.resolve(__dirname, "src", "index.html")

   })

 ]

};

這里的意思是讓 webpack,從 src/index.html 加載 HTML 模板。


html-webpack-plugin的最終目標有兩個:


加載 html 文件

它將bundle注入到同一個文件中

接著,我們需要在 src/index.html 中創建一個簡單的 HTML 文件:


<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Webpack tutorial</title>

</head>

<body>


</body>

</html>

稍后,我們會運行這個程序。


webpack development server

在本文第一部分中,我們安裝了webpack-dev-server。如果你忘記安裝了,現在可以運行下面命令安裝一下:


npm i webpack-dev-server --save-dev

webpack-dev-server 可以讓開發更方便,不需要改動了文件就去手動刷新文件。 配置完成后,我們可以啟動本地服務器來提供文件。


要配置webpack-dev-server,請打開package.json并添加一個 “start” 命令:


"scripts": {

 "dev": "webpack --mode development",

 "start": "webpack-dev-server --mode development --open",

},

有了 start 命令,我們來跑一下:


npm start

運行后,默認瀏覽器應打開。 在瀏覽器的控制臺中,還應該看到一個 script 標簽,引入的是我們的 main.js。


clipboard.png


使用 webpack loader

Loader是第三方擴展程序,可幫助webpack處理各種文件擴展名。 例如,有用于 CSS,圖像或 txt 文件的加載程序。


下面是一些 loader 配置介紹:


module.exports = {

 module: {

   rules: [

     {

       test: /\.filename$/,

       use: ["loader-b", "loader-a"]

     }

   ]

 },

 //

};

相關配置以module 關鍵字開始。 在module內,我們在rules內配置每個加載程序組或單個加載程序。


對于我們想要作為模塊處理的每個文件,我們用test和use配置一個對象


{

   test: /\.filename$/,

   use: ["loader-b", "loader-a"]

}

test 告訴 webpack “嘿,將此文件名視為一個模塊”。 use 定義將哪些 loaders 應用于些打包的文件。


打包 CSS

要 在webpack 中打包CSS,我們需要至少安裝兩個 loader。Loader 對于幫助 webpack 了解如何處理.css文件是必不可少的。


要在 webpack 中測試 CSS,我們需要在 src 下創建一個style.css文件:


h1 {

   color: orange;

}

另外在 src/index.html 添加 h1 標簽


<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Webpack tutorial</title>

</head>

<body>

<h1>Hello webpack!</h1>

</body>

</html>

最后,在src/index.js 中加載 CSS:


在測試之前,我們需要安裝兩個 loader:


css-loader: 解析 css 代碼中的 url、@import語法像import和require一樣去處理css里面引入的模塊

style-loader:幫我們直接將css-loader解析后的內容掛載到html頁面當中

安裝 loader:


npm i css-loader style-loader --save-dev

然后在webpack.config.js中配置它們


const HtmlWebpackPlugin = require("html-webpack-plugin");

const path = require("path");


module.exports = {

 module: {

   rules: [

     {

       test: /\.css$/,

       use: ["style-loader", "css-loader"]

     }

   ]

 },

 plugins: [

   new HtmlWebpackPlugin({

     template: path.resolve(__dirname, "src", "index.html")

   })

 ]

};

現在,如果你運行npm start,會看到樣式表加載在HTML的頭部:


clipboard.png


一旦CSS Loader 就位,我們還可以使用MiniCssExtractPlugin提取CSS文件


Webpack Loader 順序很重要!

在webpack中,Loader 在配置中出現的順序非常重要。以下配置無效:


//


module.exports = {

 module: {

   rules: [

     {

       test: /\.css$/,

       use: ["css-loader", "style-loader"]

     }

   ]

 },

 //

};

此處,“style-loader”出現在 “css-loader” 之前。 但是style-loader用于在頁面中注入樣式,而不是用于加載實際的CSS文件。


相反,以下配置有效:


module.exports = {

 module: {

   rules: [

     {

       test: /\.css$/,

       use: ["style-loader", "css-loader"]

     }

   ]

 },

 //

};

webpack loaders 是從右到左執行的。


打包 sass

要在 webpack 中測試sass,同樣,我們需要在 src 目錄下創建一個 style.scss 文件:


@import url("https://fonts.googleapis.com/css?family=Karla:weight@400;700&display=swap");


$font: "Karla", sans-serif;

$primary-color: #3e6f9e;


body {

 font-family: $font;

 color: $primary-color;

}

另外,在src/index.html中添加一些 Dom 元素:


<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Webpack tutorial</title>

</head>

<body>

 <h1>Hello webpack!</h1>

 <p>Hello sass!</p>

</body>

</html>

最后,將 sass 文件加載到src/index.js中:


import "./style.scss";

console.log("Hello webpack!");

在測試之前,我們需要安裝幾個 loader:


sass-loader:加載 SASS / SCSS 文件并將其編譯為 CSS

css-loader: 解析 css 代碼中的 url、@import語法像import和require一樣去處理css里面引入的模塊

style-loader:幫我們直接將css-loader解析后的內容掛載到html頁面當中

安裝 loader:


npm i css-loader style-loader sass-loader sass --save-dev

然后在webpack.config.js中配置它們:


const HtmlWebpackPlugin = require("html-webpack-plugin");

const path = require("path");


module.exports = {

 module: {

   rules: [

     {

       test: /\.scss$/,

       use: ["style-loader", "css-loader", "sass-loader"]

     }

   ]

 },

 plugins: [

   new HtmlWebpackPlugin({

     template: path.resolve(__dirname, "src", "index.html")

   })

 ]

};

注意loader的出現順序:首先是sass-loader,然后是css-loader,最后是style-loader。


現在,運行npm start,你應該會在HTML的頭部看到加載的樣式表:


clipboard.png


打包現代 JavaScrip

webpack 本身并不知道如何轉換JavaScript代碼。 該任務已外包給babel的第三方 loader,特別是babel-loader。


babel是一個JavaScript編譯器和“編譯器”。 babel 可以將現代JS(es6, es7...)轉換為可以在(幾乎)任何瀏覽器中運行的兼容代碼。


同樣,要使用它,我們需要安裝一些 Loader:


babel-core :把 js 代碼分析成 ast ,方便各個插件分析語法進行相應的處理

babel-preset-env:將現代 JS 編譯為ES5

babel-loader :用于 webpack

引入依賴關系


npm i @babel/core babel-loader @babel/preset-env --save-dev

接著,創建一個新文件babel.config.json配置babel,內容如下:


{

 "presets": [

   "@babel/preset-env"

 ]

}

最后在配置一下 webpack :


const HtmlWebpackPlugin = require("html-webpack-plugin");

const path = require("path");


module.exports = {

 module: {

   rules: [

     {

       test: /\.scss$/,

       use: ["style-loader", "css-loader", "sass-loader"]

     },

     {

       test: /\.js$/,

       exclude: /node_modules/,

       use: ["babel-loader"]

     }

   ]

 },

 plugins: [

   new HtmlWebpackPlugin({

     template: path.resolve(__dirname, "src", "index.html")

   })

 ]

};

要測試轉換,可以在 src/index.js中編寫一些現代語法:


import "./style.scss";

console.log("Hello webpack!");


const fancyFunc = () => {

 return [1, 2];

};


const [a, b] = fancyFunc();

現在運行npm run dev來查看dist中轉換后的代碼。 打開 dist/main.js并搜索“fancyFunc”:


\n\nvar fancyFunc = function fancyFunc() {\n return [1, 2];\n};\n\nvar _fancyFunc = fancyFunc(),\n _fancyFunc2 = _slicedToArray(_fancyFunc, 2),\n a = _fancyFunc2[0],\n b = _fancyFunc2[1];\n\n//# sourceURL=webpack:///./src/index.js?"

沒有babel,代碼將不會被轉譯:


\n\nconsole.log(\"Hello webpack!\");\n\nconst fancyFunc = () => {\n return [1, 2];\n};\n\nconst [a, b] = fancyFunc();\n\n\n//# sourceURL=webpack:///./src/index.js?");

注意:即使沒有babel,webpack也可以正常工作。 僅在執行 ES5 代碼時才需要進行代碼轉換過程。


在 Webpack 中使用 JS 的模塊

webpack 將整個文件視為模塊。 但是,請不要忘記它的主要目的:加載ES模塊。


ECMAScript模塊(簡稱ES模塊)是一種JavaScript代碼重用的機制,于2015年推出,一經推出就受到前端開發者的喜愛。在2015之年,JavaScript 還沒有一個代碼重用的標準機制。多年來,人們對這方面的規范進行了很多嘗試,導致現在有多種模塊化的方式。


你可能聽說過AMD模塊,UMD,或CommonJS,這些沒有孰優孰劣。最后,在ECMAScript 2015中,ES 模塊出現了。


我們現在有了一個“正式的”模塊系統。


要在 webpack 使用 ES module ,首先創建 src/common/usersAPI.js 文件:


const ENDPOINT = "https://jsonplaceholder.typicode.com/users/";


export function getUsers() {

 return fetch(ENDPOINT)

   .then(response => {

     if (!response.ok) throw Error(response.statusText);

     return response.json();

   })

   .then(json => json);

}

在 src/index.js中,引入上面的模塊:


import { getUsers } from "./common/usersAPI";

import "./style.scss";

console.log("Hello webpack!");


getUsers().then(json => console.log(json));

生產方式

如前所述,webpack有兩種操作模式:開發(development )和(production)。 到目前為止,我們僅在開發模式下工作。


在開發模式中,為了便于代碼調試方便我們快速定位錯誤,不會壓縮混淆源代碼。相反,在生產模式下,webpac k進行了許多優化:


使用 TerserWebpackPlugin 進行縮小以減小 bundle 的大小

使用ModuleConcatenationPlugin提升作用域

在生產模式下配 置webpack,請打開 package.json 并添加一個“ build” 命令:


現在運行 npm run build,webpack 會生成一個壓縮的包。


Code splitting

代碼拆分(Code splitting)是指針對以下方面的優化技術:


避免出現一個很大的 bundle

避免重復的依賴關系

webpack 社區考慮到應用程序的初始 bundle 的最大大小有一個限制:200KB。


在 webpack 中有三種激活 code splitting 的主要方法:


有多個入口點

使用 optimization.splitChunks 選項

動態導入

第一種基于多個入口點的技術適用于較小的項目,但是從長遠來看它是不可擴展的。這里我們只關注第二和第三種方式。


Code splitting 與 optimization.splitChunks

考慮一個使用Moment.js 的 JS 應用程序,Moment.js是流行的時間和日期JS庫。


在項目文件夾中安裝該庫:


npm i moment

現在清除src/index.js的內容,并引入 moment 庫:


import moment from "moment";

運行 npm run build 并查看控制的輸出內容:


main.js 350 KiB 0 [emitted] [big] main

整個 moment 庫都綁定到了 main.js 中這樣是不好的。借助optimization.splitChunks,我們可以從主包中移出moment.js。


要使用它,需要在 webpack.config.js 添加 optimization 選項:


const HtmlWebpackPlugin = require("html-webpack-plugin");

const path = require("path");


module.exports = {

 module: {

 // ...

 },

 optimization: {

   splitChunks: { chunks: "all" }

 },

 // ...

};

運行npm run build 并查看運行結果:


       main.js   5.05 KiB       0  [emitted]         main

vendors~main.js    346 KiB       1  [emitted]  [big]  vendors~main

現在,我們有了一個帶有moment.js 的vendors?main.js,而主入口點的大小更合理。


注意:即使進行代碼拆分,moment.js仍然是一個體積較大的庫。 有更好的選擇,如使用luxon或date-fns。


Code splitting 與 動態導入

Code splitting的一種更強大的技術使用動態導入來有條件地加載代碼。 在ECMAScript 2020中提供此功能之前,webpack 提供了動態導入。


這種方法在 Vue 和 React 之類的現代前端庫中得到了廣泛使用(React有其自己的方式,但是概念是相同的)。


Code splitting 可用于:


模塊級別

路由級別

例如,你可以有條件地加載一些 JavaScript 模塊,以響應用戶的交互(例如單擊或鼠標移動)。 或者,可以在響應路由更改時加載代碼的相關部分。


要使用動態導入,我們先清除src/index.html,并寫入下面的內容:


<!DOCTYPE html>

<html lang="en">

<head>

   <meta charset="UTF-8">

   <title>Dynamic imports</title>

</head>

<body>

<button id="btn">Load!</button>

</body>

</html>

在 src/common/usersAPI.js中:


const ENDPOINT = "https://jsonplaceholder.typicode.com/users/";


export function getUsers() {

 return fetch(ENDPOINT)

   .then(response => {

     if (!response.ok) throw Error(response.statusText);

     return response.json();

   })

   .then(json => json);

}

在 src/index.js 中


const btn = document.getElementById("btn");


btn.addEventListener("click", () => {

 //

});

如果運行npm run start查看并單擊界面中的按鈕,什么也不會發生。


現在想象一下,我們想在某人單擊按鈕后加載用戶列表。 “原生”的方法可以使用靜態導入從src/common /usersAPI.js加載函數:


import { getUsers } from "./common/usersAPI";


const btn = document.getElementById("btn");


btn.addEventListener("click", () => {

 getUsers().then(json => console.log(json));

});

問題在于ES模塊是靜態的,這意味著我們無法在運行時更改導入的內容。


通過動態導入,我們可以選擇何時加載代碼


const getUserModule = () => import("./common/usersAPI");


const btn = document.getElementById("btn");


btn.addEventListener("click", () => {

 getUserModule().then(({ getUsers }) => {

   getUsers().then(json => console.log(json));

 });

});

這里我們創建一個函數來動態加載模塊


const getUserModule = () => import("./common/usersAPI");

現在,當你第一次使用npm run start加載頁面時,會看到控制臺中已加載 js 包:


clipboard.png


現在,僅在單擊按鈕時才加載/common/usersAPI:


clipboard.png


對應的 chunk 是 0.js


通過在導入路徑前面加上魔法注釋/ * webpackChunkName:“ name_here” * /,可以更改塊名稱:


const getUserModule = () =>

 import(/* webpackChunkName: "usersAPI" */ "./common/usersAPI");


const btn = document.getElementById("btn");


btn.addEventListener("click", () => {

 getUserModule().then(({ getUsers }) => {

   getUsers().then(json => console.log(json));

 });

});

藍藍設計www.gerard.com.cn )是一家專注而深入的界面設計公司,為期望卓越的國內外企業提供卓越的UI界面設計、BS界面設計 、 cs界面設計 、 ipad界面設計 、 包裝設計 、 圖標定制 、 用戶體驗 、交互設計、 網站建設 平面設計服務

日歷

鏈接

個人資料

藍藍設計的小編 http://www.gerard.com.cn

存檔

主站蜘蛛池模板: 超薄肉色丝袜一二三 | 亚洲精品中文字幕乱码 | 少妇毛片 | 亚洲熟女一区二区三区 | 麻豆久久久久久久 | 欧美精品乱码视频一二专区 | 超碰五月 | 看全色黄大色大片60岁 | 国产精品久久久对白 | 精品福利一区二区三区 | 国产女人爽的流水毛片 | 欧美日韩亚洲国产精品 | 国产剧情av引诱维修工 | 久久香蕉国产线熟妇人妻 | 女人喷潮完整视频 | 粉嫩av久久一区二区三区 | 深夜国产视频 | 日本全棵写真视频在线观看 | 亚洲人成网站精品片在线观看 | 性av在线| 国产一级18片视频 | 亚洲精品ww | 欧美日韩视频在线观看免费 | 欧美日韩视频免费观看 | 青草视频免费在线观看 | 国产精品乱码 | 99国产精品欲a | 一级黄色视屏 | 巨粗进入警花哭喊求饶在线观看 | 五月丁香综合缴情六月小说 | 亚洲精品久久久久久久久久久 | 丰满少妇一区二区三区专区 | 久久这里有精品 | 娇小激情hdxxxx学生 | 精品久久久久久无码免费 | 亚洲欧美色中文字幕在线 | 男人女人黄 色视频免费 | 日韩专区一区二区三区 | 看国产一级毛片 | 成人性生交大片免费看视频app | 精品久久久久久中文字幕大豆网 | 女同av久久中文字幕字 | 国产91麻豆视频 | 女女互慰吃奶互揉的视频 | 亚洲精品久久一区二区三区 | 毛片毛片毛片毛片毛片毛片毛片毛片 | 精品久久久久久中文字幕大豆网 | 国产精品露脸高清86网站888 | 69午夜| 91久久精品人人做人人爽综合 | 国产在线精品一区二区三区直播 | 欧洲熟妇性色黄 | 国产做a爰片久久毛片a我的朋友 | 欧美精品一区二区蜜臀亚洲 | 一级黄色a | 欧美成人精品在线观看 | 亚洲欧美色一区二区三区 | 一二三在线视频 | 中文字幕无产乱码 | 粉嫩av一区二区三区四区免费 | 国产精品无码天天爽视频 | 亚洲精品一区久久久久久 | 一本一本久久a久久综合精品 | 亚洲成a人片在线播放 | 亚洲熟妇无码一区二区三区 | 国产精品扒开腿做爽爽爽a片唱戏 | 91社影院| 国产精品一区二区三区在线 | 日韩三级黄色 | 中文字幕乱码一区二区三区四区 | 亚洲午夜精品久久久久久久久久久久 | 国产91精品看黄网站在线观看动漫 | 综合影院 | 国产精品国产三级国产专播 | 艳妇乳肉豪妇荡乳xxx | 九九影院理论片私人影院 | 欧美成人精品欧美一级私黄 | 欧美激情视频一区二区三区在线播放 | 天天撸在线视频 | 五十路熟女一区二区三区 | 亚洲一区二区中文字幕 | 亚洲aⅴ欧洲av国产综合图片 | 超碰2020| 久久偷看各类wc女厕嘘嘘偷窃 | 国产女人18毛片水18精 | 成年人黄色一级片 | 久久久精彩视频 | 久久久国产精品免费 | 深夜福利成人 | 日韩欧美黄色 | 欧美综合天天夜夜久久 | 黄瓜视频在线观看污 | 天堂一码二码专区 | 成人年无码av片在线观看 | 情侣酒店偷拍一区二区在线播放 | 国产精品视频在线观看 | 国产毛片一区二区精品 | 国产精品无码一区二区三区免费 | 久久99精品国产麻豆婷婷 | 人与拘一级a毛片 | 精品国产96亚洲一区二区三区 | 成人爽站w47pw | 色吧av| 免费91视频 | 特级黄色录像 | 最近中文字幕2019在线一区 | 午夜少妇性高湖久久久久 | 精品人伦一区二区三区蜜桃视频 | 国产视频一区二区三区在线 | 天天躁夜夜躁狠狠躁2020色戒 | 成人在线观看视频网站 | 狠狠色丁香婷婷综合 | 欧美性开放情侣网站 | 日韩免费影视 | 午夜丁香网| 国产在线高潮 | 国产精品美女久久久av超清 | 天天干网站| 欧洲av在线播放 | 情欲都市成熟美妇大肉臀 | 男人的天堂久久久 | 91性高湖久久久久久久久_久久99 | 女人被狂躁到高潮视频免费软件 | 久久精品中文字幕一区 | 一区二区三区欧美在线观看 | 国产真实伦在线视频 | 饥渴的少妇和男按摩师 | 视频日韩 | 在线观看免费av片 | 久久久久亚洲精品 | 一区二区三区视频网站 | √8天堂资源地址中文在线 丰满少妇人妻久久久久久 a片在线免费观看 | 久久综合91| 亚洲 视频 一区 | 亚洲日本久久久 | 99热这里只有精 | 懂色av一区二区三区观看 | 丰满少妇久久久久久久 | vvv成人观看视频 | 亚洲乱强伦 | 亚洲性无码av中文字幕 | 日韩美女亚洲99久久二区 | 国产清纯白嫩初高生在线观看性色 | 欧美成人黄色网 | 久久重口味 | 一区二区三区av在线 | a在线观看免费网站大全 | 91九色视频在线观看 | 我要看一级黄色毛片 | 久热在线中文字幕色999舞 | 欧美激情一区二区三区 | 亚洲色图欧美视频 | 在线观看污污网站 | 丰满大肥婆肥奶大屁股 | 久久国产劲爆∧v内射-百度 | 伊人久久狼人 | 欧洲亚洲精品 | 五十路毛片 | 亚洲 欧美 日韩 在线 | 久久欧美国产伦子伦精品 | 国产一区黄色 | 色偷偷人人澡人人爽人人模 | 亚洲毛片在线观看 | 91免费在线播放 | 丁香色欲久久久久久综合网 | 欧美日批| 国内黄色片 | 日韩av麻豆 | 51国产偷自视频区视频 | 尤物在线免费视频 | 免费视频网站在线观看入口 | 欧美成人精品高清视频在线观看 | 婷婷日韩| 日韩色综合 | 人人澡人人添人人爽一区二区 | 国产精品久久精品 | 伊人av超碰久久久麻豆 | 精品国产乱码久久 | 日韩大尺度在线观看 | 中日韩一线二线三线视频 | 99成人精品| 国产成人精品av久久 | 亚洲 激情| 91在线视频在线观看 | 天堂视频在线观看免费 | 久久精品—区二区三区 | 中文字幕精品久久久乱码乱码 | 偷拍各种高潮xxx | 成人国产精品久久 | 天堂网中文在线www 三级网站视频在在线播放 热99re6久精品国产首页青柠 | 午夜dj在线观看免费视频 | 日韩av在线影院 | 日韩一二在线 | 喷水在线观看 | 成人国产片 | 在线国产精品视频 | 成人高潮片| 夜夜操天天干 | 操久久久| 欧美日韩激情视频在线观看 | 亚洲国产精品va在线看黑人 | 精品国产露脸对白在线观看 | 欧美阿v高清资源不卡在线播放 | 亚洲综合区| 91狠狠狠狠狠狠狠狠 | 在线播放污 | 亚洲视频大全 | 在线黄色免费 | 中文字幕亚洲精品一区 | 精久久久 | 欧美成人精品一区 | 国产午夜三级 | 秦大爷的性生生活1一7 | 久久久无码精品亚洲日韩蜜桃 | 国产三级韩国三级日本带黄 | 亚洲男人av天堂午夜在 | 情一色一乱一欲一区二区 | 哺乳期喷奶水丰满少妇 | 久久婷婷国产综合尤物精品 | 男女猛烈xx00免费视频试看 | 国产字幕在线观看 | 免费在线观看污片 | 精品无码久久久久久久久 | 人妻体内射精一区二区 | 国内自拍99 | 国产精品人人做人人爽人人添 | 亚洲色大成网站www 亚洲色大成网站www久久九九 | 精品美女久久久久 | 99久久99久久久精品棕色圆 | 无码国产成人午夜电影在线观看 | 伊人久久中文字幕 | 国产精品亚洲аv无码播放 露脸内射熟女--69xx | 99精品视频免费版的特色功能 | 少妇高潮淫片免费观看 | 国产区精品在线观看 | 国产亚洲精久久久久久无码 | 日本在线资源 | 欧美视频免费看欧美视频 | 毛片导航| 国产免费拔擦拔擦8x软件大全 | 欧美成人免费观看视频 | 久久黄色一级片 | 欧美日韩一二三四 | 特黄老太婆aa毛毛片 | 亚洲国产精品一区 | 亚洲免费精品网站 | 乱人伦人妻中文字幕无码 | 黄网站欧美内射 | 久久精品亚洲中文字幕无码网站 | 欧美性猛交xxxx黑人猛交 | 色吧综合网| av理伦片 | 亚洲一区二区三区精品动漫 | 天天综合av | 一区二区乱子伦在线播放 | 在线黄色大片 | 性生交大片免费看l | 香蕉视频在线观看免费 | 国产成人精品一区二区色戒 | 亚洲欧洲无码一区二区三区 | 中文字幕一区二区三区四区久久 | 国产精品久久久久久一区二区三区 | 精品国产一区二区三区av爱情岛 | 国产精品对白刺激 | 激情影音 | 亚洲午夜无码久久yy6080 | 一本色道久久综合亚洲精品酒店 | 欧美日韩在线精品一区二区 | 国产亚洲精品久久久久久牛牛 | 91久久国产综合久久91 | 欧美一区二区三区在线观看视频 | 日韩一三区 | 91精品国产91久久久久久 | 免费看国产一级片 | 日本男人天堂网 | 成年女人黄网站色视频免费97 | 99国产超薄丝袜足j在线播放 | 亚洲成人黄色在线 | 日韩精品第三页 | 女人色偷偷aa久久天堂 | 高清视频一区 | 国产毛片一区二区三区 | 91爱在线观看 | 国产区图片区一区二区三区 | 97精品在线视频 | 黑人videos3d极品另类 | 激情综合色综合啪啪开心 | 麻豆视频在线观看免费 | 久久久久久av无码免费网站下载 | 流白浆视频 | 国产xxx| 久久久久久亚洲精品成人 | 91精品国产91综合久久蜜臀 | 在线尤物 | 日韩精品无码一区二区中文字幕 | 日韩欧美偷拍 | 交专区videossex另类 | 欧美视频在线观看一区二区 | 久久精品一本到东京热 | 好吊在线视频 | 亚洲做爰日本做爰 | 精品自拍一区 | 一区免费观看 | 无码人妻丰满熟妇啪啪网站 | 国产免费拔擦拔擦8x在线播放 | 国产免费资源 | 免费国产网站 | 婷婷九月丁香 | 黑人精品欧美一区二区蜜桃 | 亚洲欧美色图在线 | 日本在线成人 | 成年免费视频黄网站在线观看 | 中文在线中文a | 成人高潮片免费 | 青草青草久热国产精品 | 国产一精品久久99无吗一高潮 | 久草成人| 国产人妖cd在线看网站 | 看全黄大色黄大片 | 青青国产精品 | 日韩精品福利 | 亚洲一区 日韩精品 中文字幕 | www.久久视频 | 亚洲精品成人网站在线观看 | 色偷偷一区二区无码视频 | 青草青草久热精品视频国产4 | 久草五月天 | 白人と日本人の交わりビデオ | 少妇真人直播免费视频 | 18禁美女裸体免费网站 | 亚洲精品沙发午睡系列 | 男人的天堂久久久 | 97国精产品无人区一码二码 | 人妻丰满熟妇av无码区乱 | 风韵丰满熟妇啪啪区老老熟妇 | 日本人操比 | 国产精品乱码一区二区三区四川人 | 思热99re视热频这里只精品 | 中国大陆一级毛片 | 超碰神马| 国产精品久久久久999 | 精品一区二区不卡无码av | 久久久久久久久久久久久久久久久久 | 久久综合噜噜激激的五月天 | 日韩精品欧美 | 日日碰狠狠躁久久躁蜜桃 | 美女网站免费视频 | 国产麻豆xxxvideo实拍 | 2020亚洲天堂 | av在线视| 久久99精品久久久久久噜噜 | 国产喷水福利在线视频 | 日本视频精品 | 免费毛片a线观看 | 日本aⅴ写真网站免费 | 奇米影视四色777 | 狠狠久久久 | 天堂国产一区二区三区四区不卡 | 欧美一区综合 | www.色53色.com| 天堂а√中文在线官网 | 天天操狠狠操夜夜操 | 欧美自拍三级 | 精品成人一区二区三区四区 | 98涩涩国产露脸精品国产网 | 无翼乌口工全彩无遮挡h全彩 | 免费精品视频一区二区三区 | 性一交一乱一色一情丿按摩 | 不卡的在线视频 | 姐姐的朋友2在线 | 日韩一区精品视频一区二区 | 女同性久久产国女同久久98 | 国产精品外围 | 老子午夜精品无码 | 久久国产成人午夜av影院武则天 | 国产精品无码永久免费不卡 | 日本一区视频在线观看 | 99久久精品日本一区二区免费 | 国产91免费看 | 一本色道久久综合亚洲精品小说 | 国产性色强伦免费视频 | 91视频插插插 | 国产男男同志互慰gvxxx | 98色| 羞羞午夜福利免费视频 | 中文字幕av影片 | www99色| 成人片在线看 | 少妇大叫太大太粗太爽了 | 色综合久久久久综合一本到桃花网 | 99久久精品久久久久久清纯 | 成人深夜小视频 | 久久久久高潮 | 亚洲日韩国产中文其他 | 福利一区二区三区视频在线观看 | 国产精品无码一区二区三区不卡 | 一区二区三区黄色片 | 区二三区四区精华日产一线二线三 | 老美黑人狂躁亚洲女 | 日韩有码在线视频 | 国产精品色婷婷久久99精品 | 亚洲最新在线视频 | 伊人首页| 国产交换配乱淫视频a免费 国产精成人品免费观看 | 肉肉视频在线观看 | 欧美日韩久 | 台湾150部性三级 | 欧美精品成人一区二区三区四区 | 成人一在线视频日韩国产 | 小明成人免费视频一区 | a级毛片在线免费看 | 麻豆成人91精品二区三区 | 国产亚洲精品久久久久5区 国产亚洲精品久久久久久 国产亚洲精品久久久久久国模美 | 亚洲综合精品在线 | 欧美激情网址 | 亚洲免费一区二区 | 女女av在线| 亚洲韩国精品无码一区二区三区 | 国产成人综合在线 | 欧美性xxxx极品hd欧美风情 | 在线观看视频日韩 | 黄色中文字幕在线观看 | 久久久国产精品黄毛片 | 在线免费观看h片 | 亚洲免费区 | 中文字幕亚洲精品在线 | 免费日批视频 | 国产亚洲无线码一区二区 | 2022av视频 | 久久精品福利视频 | 国产精品久久77777 | 中文字幕av专区 | 亚洲国产精品激情在线观看 | 成人在线免费视频 | 毛片你懂的| 污污的网站在线免费观看 | 少妇久久久久久被弄高潮 | 蜜桃av在线 | 少妇高潮太爽了在线观看 | 亚洲永久 | 国内自产少妇自拍区免费 | 成人免费淫片 | 欧美疯狂做受xxxx富婆 | 91视频免费观看在线看 | 日本精品久久 | 偷拍久久久 | 好了av四色综合无码 | 久久综合亚洲鲁鲁五月久久 | 黄色毛片视频 | 亚洲熟女乱综合一区二区 | 99久久久久久国产精品 | 国产成人无码18禁午夜福利p | 粉嫩一区二区三区四区公司1 | www白浆 | 99热精品国产一区二区在线观看 | 午夜天堂| 少妇熟女久久综合网色欲 | 亚洲产国偷v产偷v自拍色戒 | 欧洲熟妇色xxxx欧美老妇多毛 | 自慰无码一区二区三区 | 射精专区一区二区朝鲜 | 中国黄色免费网站 | 久久av无码精品人妻糸列 | 久操视频在线 | 男人天堂色 | 双性美人强迫叫床喷水h | 日韩特黄一级片 | 欧美精品免费一区二区三区 | 日本aⅴ片| 免费成人进口网站 | 久青草视频在线观看 | 日韩欧美群交p片內射中文 三级4级全黄60分钟 | 自拍偷拍亚洲一区 | 婷婷五月色综合 | 亚洲啪啪网 | 成人免费午夜无码视频在线播放 | 在线成人影视 | 午夜九九九 | 欧美大片 - 8mav | 亚洲精品午夜久久久 | 日本xxxx高清| 亚洲最大成人在线视频 | 军人全身脱精光自慰 | 亚洲国产精品久久久久久无码 | 日本黄大片在线观看 | 色播视频在线观看 | 免费无毒av | 成人香蕉视频 | 亚洲三级在线视频 | 182tv午夜| 美日韩免费视频 | 国产精品久久久久婷婷二区次 | 欧美美女性视频 | 老色鬼在线精品视频在线观看 | 成人午夜av国产传媒 | 亚洲天堂中文字幕在线 | 亚洲五十路| 3d动漫精品h区xxxxx区 | 性欧美麻豆 | 中文字幕人妻丝袜乱一区三区 | 国产亚洲欧美一区二区 | 免费特级黄色片 | 欧美韩一区 | 国产色在线 | 国产 狠狠色噜噜狠狠狠狠7777米奇 | 久久综合国产 | 亚洲伊人成综合网 | 小拗女一区二区三区 | 黄色免费版 | 香蕉视频在线观看网站 | 精品人伦一区二区三区 | 欧美极品中文字幕 | 国产情侣第一页 | 147人体做爰大胆图片成人 | 另类色视频| 色婷婷av一区二区三区丝袜美腿 | 国产乱淫av免费 | 西野翔之公侵犯中文字幕 | av在线看片 | 欧美不卡一二三 | 久久亚洲人成网站 | 国产视频一区二区三区在线观看 | 国产毛片久久久久久国产毛片 | 国产视频1区2区3区 国产视频69 | 亚洲自偷自偷图片 | 全部a∨一极品视觉盛宴 | 国产精品99久久免费 | 男人视频网站 | 午夜爱爱毛片xxxx视频免费看 | a天堂最新版中文在线地址 a天堂最新地址 | 伊人天天干 | 国产成年人视频网站 | 一级片视频免费看 | 国产精品久久久免费视频 | 成人黄色免费网址 | 天天躁日日躁狠狠躁av | 性一交一伦一伦一视频 | 亚洲欧美中文日韩在线 | 18禁黄网站免费 | 丁香六月欧美 | 国产精品99精品 | 国产又黄又爽又色的免费视频白丝 | 久久久久久久久久久久久久久久久久 | 天天摸天天射 | 国产一级视频在线观看 | 国产午夜久久 | 丁香五月亚洲综合在线 | 日本最新偷拍小便视频 | 九九视频精品在线 | 日韩乱码人妻无码中文字幕视频 | 91久久久色在线观看 | 国产三级国产精品国产专区50 | 中文字幕精品一区二区三区在线 | 嫩草影院wwwnyz五月天 | 色老头一区 | 国产原创视频在线 | 午夜激情免费视频 | 日本熟妇丰满大白屁毛片 | 天天干干干| 亚洲色欲久久久综合网东京热 | 久久久网站 | 免费一级a毛片在线播放 | 一区二区三区精品免费视频 | 强制中出し~大桥未久在线a | 中文字幕在线网站 | 看av网 | 精品亚洲成a人无码成a在线观看 | 国产区一区| 无码办公室丝袜ol中文字幕 | 在线中文字幕日韩 | 亚洲伊人成人网 | 国产精品久久精品第一页 | 97久久人澡人人添人人爽 | 超碰在线最新 | 日韩欧美中文字幕在线三区 | 色偷偷影院 | 久久综合伊人中文字幕 | 在线亚洲色图 | 欧美激情久久久 | 亚洲欧美精品一中文字幕 | 久国产精品韩国三级视频 | 国产人伦视频 | 蜜臀av在线播放一区二区三区 | 免费无遮挡无码视频在线观看 | 久久久无码精品午夜 | 在线观看视频毛片 | 日本久久一区二区 | 国产欧美视频一区 | 亚洲精品日本无v一区 | 日韩欧美一级黄色片 | 日韩精品无玛区免费专区又长又大 | 农村一级毛片 | 国产精品91视频 | 激情成人综合网 | 爱情岛论坛亚洲首页入口章节 | 欧美最爽乱淫视频播放 | 免费在线精品视频 | 好吊色在线观看 | 黑人巨大猛烈捣出白浆 | 五月婷六月丁香狠狠躁狠狠爱 | 日韩欧美亚洲综合久久 | 999国产精品999久久久久久 | 国产成人精品一区二区三区视频 | 午夜国产福利 | 色爽交| 中国少妇内射xxxhd免费 | 免费一区 | 99性趣网| 亚洲一久久久久久久久 | 男人的天堂一区 | 欧美尹人 | 丁香六月av | 久久夜色撩人精品国产av | 欧美黑人孕妇孕交 | 亚洲欧美日韩精品久久亚洲区 | 欧美又大粗又爽又黄大片视频 |