日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gulp webpack整合

發布時間:2023/12/2 编程问答 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gulp webpack整合 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么需要前端工程化?

前端工程化的意義在于讓前端這個行業由野蠻時代進化為正規軍時代,近年來很多相關的工具和概念誕生。好奇心日報在進行前端工程化的過程中,主要的挑戰在于解決如下問題:
? 如何管理多個項目的前端代碼?
? 如何同步修改復用代碼?
? 如何讓開發體驗更爽?

項目實在太多

之前寫過一篇博文?如何管理被多個項目引用的通用項目?,文中提到過好奇心日報的項目偏多(PC/Mobile/App/Pad),要為這么多項目開發前端組件并維護是一個繁瑣的工作,并且會有很多冗余的工作。

更好的管理前端代碼

前端代碼要適配后臺目錄的規范,本來可以很美好的前端目錄結構被拆得四分五裂,前端代碼分散不便于管理,并且開發體驗很不友好。
而有了前端工程化的概念,前端項目和后臺項目可以徹底分離,前端按自己想要的目錄結構組織代碼, 然后按照一定的方式構建輸出到后臺項目中,簡直完美(是不是有種后宮佳麗三千的感覺)。

技術選型

調研了市場主流的構建工具,其中包括gulp、webpack、fis,最后決定圍繞gulp打造前端工程化方案,同時引入webpack來管理模塊化代碼,大致分工如下:

gulp:處理html壓縮/預處理/條件編譯,圖片壓縮,精靈圖自動合并等任務
webpack:管理模塊化,構建js/css。

至于為什么選擇gulp & webpack,主要原因在于gulp相對來說更靈活,可以做更多的定制化任務,而webpack在模塊化方案實在太優秀(情不自禁的贊美)。

怎么設計前端項目目錄結構?

抽離出來的前端項目目錄結構如下


前端項目結構

appfe目錄:appfe就是前面提到的前端項目,這個項目主要包含兩部分:前端代碼、構建任務
appfe > gulp目錄:包含了所有的gulp子任務,每個子任務包含相關任務的所有邏輯。
appfe > src目錄:包含了所有前端代碼,比如頁面、組件、圖片、字體文件等等。
appfe > package.json:這個不用說了吧。
appfe > gulpfile.js:gulp入口文件,引入了所有的gulp子任務。

理想很豐滿,現實卻很骨感,這么美好的愿望,在具體實踐過程中,注定要花不少心思,要踩不少坑。
好奇心日報這次升級改造即將上線,終于也有時間把之前零零碎碎的博文整合在一起,并且結合自己的體會分享給大家,當然未來可能還會有較大的調整,這兒拋磚引玉,大家可以參考思路。

gulp 是什么?

gulp是一個基于流的構建工具,相對其他構件工具來說,更簡潔更高效。
Tip:之前寫過一篇gulp 入門,可以參考下,如果對gulp已經有一定的了解請直接跳過。

webpack 是什么?

webpack是模塊化管理的工具,使用webpack可實現模塊按需加載,模塊預處理,模塊打包等功能。
Tip:之前寫過一篇webpack 入門,可以參考下,如果對webpack已經有一定的了解請直接跳過。

如何整合gulp & webpack

webpack是眾多gulp子任務中比較復雜的部分,主要對JS/CSS進行相關處理。
包括:模塊分析、按需加載、JS代碼壓縮合并、抽離公共模塊、SourceMap、PostCSS、CSS代碼壓縮等等...

webpack-stream方案[不推薦]

使用webpack-stream雖然可以很方便的將webpack整合到gulp中,但是有致命的問題存在:
如果關閉webpack的監聽模式,那么每次文件變動就會全量編譯JS/CSS文件,非常耗時。
如果打開webpack的監聽模式,那么會阻塞其他gulp任務,導致其他gulp任務的監聽失效。
所以這種方案幾乎不可用!

webpack原生方案

直接使用webpack原生方案,相對來說更靈活。
Tip:代碼較復雜,里面涉及的知識點也很多,建議看看形狀就好,如果真有興趣,可以好好研究研究,畢竟花了很長時間去思考這些方案。

// webpack.config.js 關鍵地方都有大致注釋 var _ = require('lodash'); var path = require('path'); var webpack = require('webpack'); var ExtractTextPlugin = require("extract-text-webpack-plugin"); var autoprefixer = require('autoprefixer'); var flexibility = require('postcss-flexibility'); var sorting = require('postcss-sorting'); var color_rgba_fallback = require('postcss-color-rgba-fallback'); var opacity = require('postcss-opacity'); var pseudoelements = require('postcss-pseudoelements'); var will_change = require('postcss-will-change'); var cssnano = require('cssnano'); var project = require('./lib/project')(); var config = require('./config.' project).webpack; // loaders配置 var getLoaders = function(env) { return [{ test: /\.jsx?$/, exclude: /(node_modules|bower_components|vendor)/, loader: 'babel?presets[]=es2015&cacheDirectory=true!preprocess?PROJECT=' project }, { test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader!postcss-loader") }, { test: /\.less$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader!postcss-loader!less-loader") }, { test: /\/jquery\.js$/, loader: 'expose?$!expose?jQuery!expose?jquery' }, { test: /\.xtpl$/, loader: 'xtpl' }, { test: /\.modernizrrc$/, loader: "modernizr" }]; }; // 別名配置 var getAlias = function(env) { return { // 特殊 'jquery': path.resolve(__dirname, '../src/vendor/jquery2/jquery.js'), // 正常第三方庫 'jquery.js': path.resolve(__dirname, '../src/vendor/jquery2/jquery.js'), }; }; // 插件配置 var getPlugins = function(env) { var defaultPlugins = [ // 這個不僅是別名,還可以在遇到別名的時候自動引入模塊 new webpack.ProvidePlugin({ '$': 'jquery.js', 'jquery': 'jquery.js', 'jQuery': 'jquery.js', }), // 抽離公共模塊 new webpack.optimize.CommonsChunkPlugin('common', 'common.js'), new ExtractTextPlugin( path.join('../../stylesheets', project, '/[name].css'), { allChunks: true } ) ]; if (env == 'production') { // 線上模式的配置,去除依賴中重復的插件/壓縮js/排除報錯的插件 plugins = _.union(defaultPlugins, [ new webpack.optimize.DedupePlugin(), new webpack.optimize.UglifyJsPlugin({ sourceMap: false, mangle: { except: ['$', 'jQuery'] } }), new webpack.NoErrorsPlugin() ]); } else { plugins = _.union(defaultPlugins, []); } return plugins; }; // postcss配置 var getPostcss = function(env) { var postcss = [ autoprefixer({ browers: ['last 2 versions', 'ie >= 9', '> 5% in CN'] }), flexibility, will_change, color_rgba_fallback, opacity, pseudoelements, sorting ]; if (env == 'production') { // 線上模式的配置,css壓縮 return function() { return _.union([ cssnano({ // 關閉cssnano的autoprefixer選項,不然會和前面的autoprefixer沖突 autoprefixer: false, reduceIdents: false, zindex: false, discardUnused: false, mergeIdents: false }) ], postcss); }; } else { return function() { return _.union([], postcss); } } }; // 作為函數導出配置,代碼更簡潔 module.exports = function(env) { return { context: config.context, entry: config.src, output: { path: path.join(config.jsDest, project), filename: '[name].js', chunkFilename: '[name].[chunkhash:8].js', publicPath: '/assets/' project '/' }, devtool: "eval", watch: false, profile: true, cache: true, module: { loaders: getLoaders(env) }, resolve: { alias: getAlias(env) }, plugins: getPlugins(env), postcss: getPostcss(env) }; } // webpack任務 var _ = require('lodash'); var del = require('del'); var webpack = require('webpack'); var gulp = require('gulp'); var plumber = require('gulp-plumber'); var newer = require('gulp-newer'); var logger = require('gulp-logger'); var project = require('../lib/project')(); var config = require('../config.' project).webpack; var compileLogger = require('../lib/compileLogger'); var handleErrors = require('../lib/handleErrors'); // 生成js/css gulp.task('webpack', ['clean:webpack'], function(callback) { webpack(require('../webpack.config.js')(), function(err, stats) { compileLogger(err, stats); callback(); }); }); // 生成js/css-監聽模式 gulp.task('watch:webpack', ['clean:webpack'], function() { webpack(_.merge(require('../webpack.config.js')(), { watch: true })).watch(200, function(err, stats) { compileLogger(err, stats); }); }); // 生成js/css-build模式 gulp.task('build:webpack', ['clean:webpack'], function(callback) { webpack(_.merge(require('../webpack.config.js')('production'), { devtool: null }), function(err, stats) { compileLogger(err, stats); callback(); }); }); // 清理js/css gulp.task('clean:webpack', function() { return del([ config.jsDest, config.cssDest ], { force: true }); });

實踐中遇到那些坑?

如何組織gulp任務?

由于gulp任務較多,并且每個核心任務都有關聯任務,比如webpack的關聯任務就有

webpack/ watch:webpack/ build:webpack/ clean:webpack,如何組織這些子任務是一個需要很小心的事情,出于一直以來的習慣:把關聯的邏輯放在一起,所以我的方案是webpack相關的任務放到一個文件,然后定義了 default/ clean/ watch/ build四個入口任務來引用對應的子任務。


webpack任務結構
gulp怎么實現錯誤自啟動

使用watch模式可以更高效的開發,監聽到改動就自動執行任務,但是如果過程中遇到錯誤,gulp就會報錯并終止watch模式,必須重新啟動gulp,簡直神煩!
利用gulp-plumber可以實現錯誤自啟動,這樣就能開心的在watch模式下開發且不用擔心報錯了。
進一步結合gulp-notify,在報錯時可以得到通知,便于發現問題。

// 錯誤處理 var notify = require("gulp-notify") module.exports = function(errorObject, callback) { // 錯誤通知 notify.onError(errorObject.toString().split(': ').join(':\n')) .apply(this, arguments); // Keep gulp from hanging on this task if (typeof this.emit === 'function') { this.emit('end'); } } // 任務 var gulp = require('gulp'); var plumber = require('gulp-plumber'); var project = require('../lib/project')(); // 得到當前的后臺項目 var config = require('../config.' project).views; // 讀取配置文件 var handleErrors = require('../lib/handleErrors'); gulp.task('views', function() { return gulp.src(config.src) .pipe(plumber(handleErrors)) // 錯誤自啟動 .pipe(gulp.dest(config.dest)); });
gulp怎么處理同步任務和異步任務

同步任務:gulp通過 return stream的方式來結束當前任務并且把 stream傳遞到下一個任務,大多數gulp任務都是同步模式。
異步任務:實際項目中,有些任務的邏輯是異步函數執行的,這種任務的return時機并不能準確把控,通常需要在異步函數中調用 callback()來告知gulp該任務結束,而這個 callback什么都不是,就是傳到該任務中的一個參數,沒有實際意義。

// 同步任務 gulp.task('views', function() { return gulp.src(config.src) .pipe(plumber(handleErrors)) .pipe(gulp.dest(config.dest)); }); // 異步任務 gulp.task('webpack', function(callback) { webpack(config, function(err, stats) { compileLogger(err, stats); callback(); //異步任務的關鍵之處,如果沒有這行,任務會一直阻塞 }); });
webpack怎么抽出獨立的css文件

webpack默認是將css直接注入到html中,這種方法并不具有通用性,不推薦使用。
結合使用

extract-text-webpack-plugin,可以生成一個獨立的css文件, extract-text-webpack-plugin會解析每一個 require('*.css')然后處理輸出一個獨立的css文件。

// webpack.config.js var ExtractTextPlugin = require("extract-text-webpack-plugin"); module.exports = { entry: { 'homes/index': 'pages/homes/index.js' }, output: { filename: "[name].js" }, module: { loaders: [{ test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") }] }, plugins: [ new ExtractTextPlugin("[name].css") ] }
webpack怎么抽出通用邏輯和樣式

沒有webpack之前,想要抽離出公共模塊完全需要手動維護,因為js是動態語言,所有依賴都是運行時才能確定,webpack可以做靜態解析,分析文件之間的依賴關系,使用

CommonsChunkPlugin就可以自動抽離出公共模塊。

// webpack.config.js var webpack = require('webpack'); var ExtractTextPlugin = require("extract-text-webpack-plugin"); module.exports = { entry: { 'homes/index': 'pages/homes/index.js' }, output: { filename: "[name].js" }, module: { loaders: [{ test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader") }] }, plugins: [ //抽離公共模塊,包含js和css new webpack.optimize.CommonsChunkPlugin("commons", "commons.js"), new ExtractTextPlugin("[name].css") ] }
webpack的watch模式

webpack相對來說比較耗時,尤其是項目較復雜時,需要解析的文件較多。好奇心日報web項目首次全量執行webpack任務大概需要10s,所以必須引入增量構建。增量構建只需要簡單的給webpack配置添加watch參數即可。


webpack任務輸出日志

但是問題在于,如果給webpack-stream添加watch參數,webpack-stream的任務會阻塞其他的watch任務,最后導致其他任務的增量構建失效。
所以如果要使用webpack的增量構建,需要使用原生的webpack方案!

靈活的webpack入口文件

webpack入口文件接收三種格式:字符串,數組,對象,對于多頁應用場景,只有對象能夠滿足條件,所以我們把所有的入口文件全部列出來即可。
但這種方案極不靈活,借鑒gulp的方案,是否可以讀取某個文件下的所有入口文件呢?為了解決這個問題,自定義了一個函數來實現該功能。

//獲取文件夾下面的所有的文件(包括子文件夾) var path = require('path'), glob = require('glob'); module.exports = function(dir, ext) { var files = glob.sync(dir '/**/*.' ext), res = {}; files.forEach(function(file) { var relativePath = path.relative(dir, file), relativeName = relativePath.slice(0, relativePath.lastIndexOf('.')); res[relativeName] = './' relativePath; }); return res; };
webpack的development/production配置合并

webpack任務的development配置和production配置差異巨大,并且各自擁有專屬的配置。
由于

webpack.config.js默認寫法是返回一個對象,對象并不能根據不同條件有不同的輸出,所以將 webpack.config.js改成函數,通過傳入參數來實現不同的輸出。

// 其中定義了getLoaders,getAlias,getPlugins,getPostcss函數 // 都是為了解決development配置和production配置的差異問題 // 既最大程度的復用配置,又允許差異的存在 module.exports = function(env) {return { context: config.context, entry: config.src, output: { path: path.join(config.jsDest, project), filename: '[name].js', chunkFilename: '[name].[chunkhash:8].js', publicPath: '/assets/' project '/' }, devtool: "eval", watch: false, profile: true, cache: true, module: { loaders: getLoaders(env) }, resolve: { alias: getAlias(env) }, plugins: getPlugins(env), postcss: getPostcss(env) }; }
webpack怎么線上模式異步加載js文件

webpack可以將js代碼分片,把入口文件依賴的所有模塊打包成一個文件,但是有些場景下的js代碼并不需要打包到入口文件中,更適合異步延遲加載,這樣能最大程度的提升首屏加載速度。
比如好奇心日報的登錄浮層,這里面包含了復雜的圖片上傳,圖片裁剪,彈框的邏輯,但是它沒必要打包在入口文件中,反倒很適合異步延遲加載,只有當需要登錄/注冊的時候才去請求。


圖片上傳裁剪

我們可以通過webpack提供的

require及 require.ensure來實現異步加載,值得一提的是,除了指定的異步加載文件列表,webpack還會自動解析回調函數的依賴及指定列表的深層次依賴,并打包成一個文件。

但是實際項目中還得解決瀏覽器緩存的問題,因為這些異步JS文件的時間戳是rails生產的,對于webpack是不可知的,也就是說請求這個異步JS文件并不會命中。
為了解決這個問題,我們在rails4中自定義了一個rake任務:生產沒有時間戳版本的異步JS文件。


rake任務

上圖中還有一個小細節就是,這些異步JS文件有兩個時間戳,前者為webpack時間戳,后者為rails時間戳,之所以有兩個時間戳,是為了解決瀏覽器緩存的問題。

簡而言之就是:
通過

require/ require.ensure,來生成異步JS文件,解決異步加載的問題。
通過自定義rake任務,來生成沒有rails時間戳的異步JS文件,解決webpack不識別rails時間戳的問題。
通過webpack的chunkFileName配置,給異步JS文件加上webpack時間戳,解決瀏覽器緩存的問題。

?

學習過程中遇到什么問題或者想獲取學習資源的話,歡迎加入學習交流群
343599877,我們一起學前端!

總結

以上是生活随笔為你收集整理的gulp webpack整合的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

欧美日韩国产精品一区二区三区 | 蜜臀av性久久久久蜜臀aⅴ流畅 | 久久视频这里有精品 | 午夜色站| 狠狠干婷婷 | 五月天综合激情 | 成人一区二区三区中文字幕 | 国产 日韩 欧美 在线 | 国产一区二区在线免费播放 | 一级免费av| 免费在线观看一级片 | 在线欧美最极品的av | 国产精品乱码久久久久 | 亚洲 精品在线视频 | 久久免费电影 | 国产精品9999 | 最近日本字幕mv免费观看在线 | 国产中文欧美日韩在线 | 伊人av综合 | 久久任你操 | 色婷婷av在线 | 亚洲精品网址在线观看 | 亚洲 中文 欧美 日韩vr 在线 | 成人黄色国产 | av直接看| 国内精品视频一区二区三区八戒 | 日韩免费一级a毛片在线播放一级 | 欧美精品久久久久久久久免 | 四虎影视国产精品免费久久 | 色在线国产 | 久久97久久 | 婷婷伊人五月 | 午夜10000| 国产成人精品一区二区三区免费 | 午夜在线免费观看 | 国产极品尤物在线 | 麻豆影视网站 | 91视频电影 | 精品久久99| www.玖玖玖 | 亚洲午夜精品在线观看 | 98久9在线 | 免费 | 亚洲成av人电影 | 99精品一区 | 国产亚洲精品美女久久 | 探花视频免费观看高清视频 | 丁香激情婷婷 | 一区二区三区影院 | 深爱激情综合网 | 91九色蝌蚪视频在线 | 黄色大片网 | 久久久久久久久久影院 | 四虎在线观看视频 | 久久免费国产视频 | 精品在线不卡 | www成人精品| 在线国产能看的 | 99这里只有精品99 | 蜜桃视频在线观看一区 | 天天干国产 | 日本精品久久久久影院 | 成年人免费在线 | 中文字幕在线观看日本 | 国产经典av | 久久久 精品 | 久久精品免视看 | 中文字幕黄色网址 | 国产日韩视频在线播放 | 国产精品久久久久久久久久免费 | 国产999精品久久久影片官网 | 日韩三级免费 | 久久久一本精品99久久精品66 | 中文字幕字幕中文 | www色av| 欧美日韩国产一区二区三区 | 免费观看性生活大片 | 在线免费国产视频 | 永久免费av在线播放 | 天无日天天操天天干 | 久久99久久99精品免视看婷婷 | 亚洲午夜久久久久久久久电影网 | 91在线日本| 黄色免费高清视频 | 91av大全 | 狠狠色丁香久久婷婷综 | 又黄又爽又无遮挡免费的网站 | 黄色网在线免费观看 | 国产精品久久久久婷婷 | 久久99久久久久 | 国产剧情久久 | 日韩精品视频免费看 | 波多野结衣网址 | 99久高清在线观看视频99精品热在线观看视频 | 国产精品第三页 | 久草在线91| 黄色三级视频片 | 久久有精品 | www.色的| 激情 一区二区 | 亚洲欧洲一区二区在线观看 | 国产 日韩 在线 亚洲 字幕 中文 | 国产精品9999| 91日韩精品 | 亚州黄色一级 | 亚洲一区黄色 | 亚洲精品视频偷拍 | 干干干操操操 | 午夜精品久久久久久久久久久久 | 国产麻豆精品免费视频 | www.com黄色 | 免费看av片网站 | 欧美 亚洲 另类 激情 另类 | 欧美最猛性xxxxx亚洲精品 | 国产成人一区二区在线观看 | 国产97在线观看 | 五月天婷婷在线播放 | 国产精品99免视看9 国产精品毛片一区视频 | 国产色拍拍拍拍在线精品 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 最新中文在线视频 | 一级黄色免费 | 欧美激情综合色综合啪啪五月 | 在线天堂中文www视软件 | 久久黄色小说 | 国产馆在线播放 | 美女av电影 | 欧美日韩在线观看视频 | 国产视频资源在线观看 | 91网页版在线观看 | 国产精品久久久久久高潮 | 91久久偷偷做嫩草影院 | 91精品国产自产在线观看永久 | 欧美日韩在线免费观看视频 | 91毛片在线 | 五月婷婷六月丁香激情 | 丰满少妇在线观看资源站 | 在线日韩av | 狠狠操狠狠干2017 | 2024国产精品视频 | 天天综合色 | 久久精品网 | 在线播放第一页 | 中文字幕一区二区在线播放 | 亚洲 精品在线视频 | 免费av视屏| 人人爽爽人人 | 久久精品99北条麻妃 | 在线观看91精品国产网站 | 韩国三级av在线 | 99精品国自产在线 | 四虎影视成人精品国库在线观看 | 韩国av免费观看 | 精品国产一区二区三区av性色 | 国产成人精品一区二区在线观看 | 精品免费观看视频 | 国产成人一区三区 | 国产精品手机在线 | 欧洲一区二区三区精品 | 又污又黄网站 | 亚洲粉嫩av | 中文字幕在线精品 | 91精品国产麻豆 | 一区二区三区手机在线观看 | 菠萝菠萝在线精品视频 | 天天射天天拍 | 久久精品久久久久 | 久久久综合色 | 成+人+色综合 | 欧洲亚洲女同hd | www.伊人网| 久草在线视频国产 | 午夜久久电影网 | wwwww.国产| www.久久91| 日韩超碰| av成人免费在线 | 深爱五月网 | 精品国产一区二区三区久久久久久 | 九九九九精品 | 成年人视频在线观看免费 | 日韩毛片在线播放 | 久久综合成人网 | 97超碰精品 | 成人a免费看| 日本aaa在线观看 | 久久国产精品二国产精品中国洋人 | 久草网首页 | 久久九九影视网 | 成人av在线亚洲 | 国产69精品久久久久久久久久 | 国产成人精品一区二区三区 | av在线电影网站 | 免费在线播放 | 欧美无极色 | 久久黄色免费观看 | 一区二区三区在线不卡 | 婷婷激情在线观看 | 久久精品理论 | 91精品资源 | 日韩精品一区二区在线 | 精品亚洲一区二区 | 亚洲成年人在线播放 | 日韩电影一区二区三区在线观看 | 怡红院久久 | 久久综合毛片 | 最近中文字幕高清字幕在线视频 | 国产美女在线精品免费观看 | 国产经典av| 日韩大片在线观看 | 久操久 | 日韩高清一区 | 香蕉成人在线视频 | 2023av| 欧美视频日韩视频 | 青青色影院 | 天天操夜夜干 | 毛片在线播放网址 | 国产成人精品女人久久久 | 日韩一区精品 | 久久久久久久久久久久久影院 | 中文字幕在线免费播放 | 91九色成人 | 亚州av一区| 国产一级大片在线观看 | 超碰97人人在线 | 成人福利在线观看 | 婷婷国产精品 | 在线观看完整版免费 | 免费无遮挡动漫网站 | 国产精品大尺度 | 欧美精品久久久久久久久久白贞 | 深爱激情五月婷婷 | 国产69精品久久99的直播节目 | 日韩精品不卡 | 国产成人精品一区二三区 | 中文字幕在线专区 | 久久精品一区二区三区国产主播 | 亚洲成人黄色 | 夜夜澡人模人人添人人看 | 手机成人av | 亚洲视频在线免费看 | 一区二区三区国 | 99国产精品一区二区 | 国产美女精品视频免费观看 | 久久一级片| 激情久久久久 | 午夜精品麻豆 | 91看片淫黄大片一级在线观看 | 夜夜夜草| 999国内精品永久免费视频 | 午夜视频一区二区 | 欧美日韩性视频在线 | 免费日韩一区二区三区 | 国产69精品久久99不卡的观看体验 | 成人在线视频免费看 | 天天天天射 | 激情综合网五月 | 天天操人人要 | 免费福利片2019潦草影视午夜 | 在线导航av | 天天综合狠狠精品 | 性色视频在线 | 成人国产一区 | 久久深爱网| av在线短片 | 国产精品视频内 | 国产精品久久久久aaaa | 亚洲精品玖玖玖av在线看 | 欧美精品xxx | 日韩大陆欧美高清视频区 | 国产精品久久久久久模特 | 久久国产精品色婷婷 | 亚洲人在线 | 久草视频看看 | 天天摸天天干天天操天天射 | 四虎国产永久在线精品 | 亚洲精品午夜久久久 | 亚洲国产日韩av | 久久69精品 | 日韩在线不卡视频 | 国产97在线播放 | 久久免费视频这里只有精品 | 男女激情片在线观看 | 国产专区免费 | 91成人天堂久久成人 | 成人性生爱a∨ | 久久久久国产精品一区二区 | 婷婷丁香视频 | 色综合咪咪久久网 | 久久久久亚洲精品成人网小说 | 深夜免费福利 | 久久99久久99精品中文字幕 | 欧美日韩亚洲在线观看 | 亚洲精品乱码久久久久久久久久 | 91精品国产网站 | 欧美美女视频在线观看 | 99精品偷拍视频一区二区三区 | 精品在线观看视频 | 日韩欧美精品一区二区 | 欧洲av在线 | av大全在线看 | 日本三级吹潮在线 | 精品在线视频观看 | 亚洲欧美乱综合图片区小说区 | 国产在线视频资源 | 懂色av懂色av粉嫩av分享吧 | 亚洲国产综合在线 | 欧美日韩不卡在线观看 | 国产视频一区在线免费观看 | 亚洲少妇天堂 | 久久看毛片 | 91视频 - 114av| 九九九国产 | 亚洲精品网址在线观看 | 一级欧美一级日韩 | 激情视频一区二区三区 | 精品自拍网 | 国产成人精品午夜在线播放 | 日韩在线精品一区 | 一区二区三区在线观看免费 | 日韩精品一区二区三区免费视频观看 | 国产精品二区三区 | 日韩免| 久久精国产| 午夜久久视频 | 九九国产精品视频 | 四虎亚洲精品 | 波多野结衣视频一区二区 | www.久久色| 国产精品电影一区 | 98超碰在线观看 | 黄色午夜网站 | 亚洲一级黄色 | 久久色中文字幕 | 在线免费av网 | 综合久久网站 | 欧美久久久久久久久久 | 久久国产一区 | 久久理论电影网 | 粉嫩av一区二区三区四区五区 | 免费亚洲精品视频 | 成人av在线直播 | 99re国产视频 | 在线免费国产视频 | 四虎永久免费在线观看 | 狠狠干.com | 国产视频一 | 激情五月色播五月 | 欧美另类激情 | 激情网站免费观看 | 久久视频精品在线 | 精品国产三级a∨在线欧美 免费一级片在线观看 | 综合色伊人 | 在线观看成人国产 | 国产黄色片一级三级 | a级一a一级在线观看 | 久一久久 | 在线免费国产视频 | 精品久久一区二区 | 国产成人一区二 | 中文字幕在线高清 | 日韩中文字幕电影 | 亚洲黄色在线观看 | 黄色大全视频 | 亚洲黄色三级 | 国内视频 | 国产精品久久嫩一区二区免费 | 99精品视频99| 狠狠狠狠狠狠天天爱 | 91人人干 | 久久色在线播放 | av免费看在线 | 久久久人人爽 | 国产亚洲综合在线 | 午夜视频在线观看一区二区三区 | 亚洲国产视频在线 | 久久精品99久久 | 天天综合五月天 | 91中文字幕网 | 中文字幕一区二区三区乱码不卡 | 久久成人午夜视频 | 久久久久久久久黄色 | 国产免费不卡 | 久久无码av一区二区三区电影网 | 国产精品中文字幕在线 | 久久精品视频在线观看免费 | av九九九| 中文字幕一区av | www日韩精品 | 国产黄色片免费看 | 狠狠色丁香婷婷综合欧美 | www.com在线观看| 9在线观看免费高清完整版在线观看明 | 国产中文字幕视频在线观看 | 久草青青在线观看 | 国产网站av | 亚洲美女免费精品视频在线观看 | 成片免费 | 91福利社区在线观看 | 国产黄色片一级三级 | 欧美激情视频一区二区三区 | 美女久久久久 | 婷婷六月丁香激情 | 国产精品毛片一区视频 | av大片网站 | 欧美日韩精品电影 | 波多野结衣视频一区二区三区 | 成人久久久精品国产乱码一区二区 | 国产成人精品一区二区三区网站观看 | 啪啪资源| 国产日韩精品一区二区在线观看播放 | 99久久久| 日韩高清av | 97超在线视频 | 欧美日韩在线第一页 | av电影在线不卡 | 中文字幕亚洲欧美日韩2019 | 欧美一区二区三区四区夜夜大片 | 天天天干夜夜夜操 | 亚洲女裸体| www.91国产 | 婷婷色站| 国产精品久久久久永久免费 | 中文资源在线官网 | 久热久草 | 国产成人福利片 | 又色又爽又黄高潮的免费视频 | 久一在线 | 最近久乱中文字幕 | 992tv在线观看 | 人人干人人爽 | a级国产乱理论片在线观看 伊人宗合网 | 91精品久久久久久综合五月天 | 久久久国产精品视频 | 中文字幕不卡在线88 | 国内精品久久久久久久影视麻豆 | 中文字幕在线看视频国产中文版 | 亚洲经典在线 | 精品国产激情 | 国产日韩一区在线 | 天天色图 | 91色影院| 视频国产一区二区三区 | 99精品久久久久久久 | 久久av免费观看 | 99情趣网视频 | 国产区精品在线观看 | 欧美性色黄 | 婷婷成人综合 | 久久天天躁 | 成人黄色在线观看视频 | 欧美资源在线观看 | 天天舔天天搞 | 国产热re99久久6国产精品 | 一级片黄色片网站 | 成年人在线视频观看 | 久久久久国产免费免费 | 国产成人区 | 国产成免费视频 | 久久伊人八月婷婷综合激情 | 日韩网站中文字幕 | 国产精品原创在线 | 男女激情片在线观看 | 中文字幕乱视频 | 最新影院 | 欧美电影在线观看 | 欧美高清视频不卡网 | 亚洲最新精品 | 久久玖 | 99精品免费 | 亚洲天堂视频在线 | 日本精品va在线观看 | 九九九九九国产 | av在线播放不卡 | 国产不卡免费av | 黄p网站在线观看 | 日韩欧美一区二区在线 | 国内精品久久久久久久久久清纯 | 久草在线综合 | 97人人添人澡人人爽超碰动图 | 精品久久国产精品 | 国产精品99免费看 | 精品国产乱码久久久久久浪潮 | 精品国产电影 | 成片免费观看视频大全 | 丰满少妇久久久 | 国产 在线观看 | 丰满少妇一级 | 免费看的黄色 | 日韩黄色在线电影 | 久久香蕉一区 | 夜夜操天天干 | 麻花豆传媒mv在线观看网站 | 日本69hd | 日韩大片在线免费观看 | 视频高清 | 久久综合给合久久狠狠色 | 国产五月婷 | 日韩女同av| 国产欧美三级 | 久青草电影 | 精品国内自产拍在线观看视频 | 91看片麻豆 | 国产精品久久精品国产 | 欧美日本三级 | 高清av网站 | 中文字幕在线视频国产 | 成年人视频在线免费 | 国产福利免费在线观看 | 色偷偷888欧美精品久久久 | www激情com| 成 人 黄 色视频免费播放 | 中文一区在线 | 亚洲婷婷在线 | av免费看在线 | 97成人在线观看 | 999热视频 | 国产精品一区二区三区在线看 | 久久精品亚洲一区二区三区观看模式 | 激情片av| 久久久网 | 九九国产精品视频 | 最新色站 | 日韩免费区 | 婷婷色伊人 | 久久精品视频网 | 久久久久亚洲国产精品 | 亚洲综合视频网 | 国产成人精品999在线观看 | 亚洲国产精品资源 | 国产男女无遮挡猛进猛出在线观看 | 日韩免费在线观看视频 | 免费看久久久 | 午夜精品三区 | 99久久日韩精品视频免费在线观看 | 伊人久久av | 国产精品麻豆一区二区三区 | 久久久久高清毛片一级 | 成人免费在线视频观看 | 亚洲一二三区精品 | 国产网红在线观看 | 永久av免费在线观看 | 成人午夜剧场在线观看 | 日韩欧美一区二区三区视频 | 午夜美女视频 | 黄色av三级在线 | 国产情侣一区 | 视频 天天草 | 亚洲日本一区二区在线 | 国产日韩视频在线播放 | 亚洲1级片| 色网免费观看 | 9在线观看免费高清完整版在线观看明 | 波多野结衣视频一区 | 91九色网站 | 亚洲一区二区精品 | 免费观看日韩av | 最新一区二区三区 | 国产福利一区二区三区视频 | 久久涩视频 | 国产一级片观看 | 99热最新精品 | 欧美日韩一区二区三区不卡 | 99色视频在线| 激情综合国产 | 国产成人精品电影久久久 | 五月婷婷综合色拍 | 天天综合中文 | 日韩精品在线播放 | 免费精品视频在线观看 | 中文字幕久久网 | 中文超碰字幕 | 精品久久久久久亚洲 | 色姑娘综合网 | 亚洲三级网站 | 亚洲精品视频二区 | 欧美日韩在线视频免费 | 日韩免费在线视频观看 | 欧美另类交在线观看 | 日日干天天 | 日韩免费高清在线 | 丝袜制服天堂 | 97超碰中文字幕 | 国产丝袜制服在线 | 国产精品欧美久久久久久 | 在线观看精品视频 | 久久久久久久免费观看 | 日本性xxxxx 亚洲精品午夜久久久 | 欧美最猛性xxx| 在线成人一区二区 | 久久女同性恋中文字幕 | 99久久精品久久亚洲精品 | 99高清视频有精品视频 | 性色xxxxhd| 亚洲三级性片 | 天天伊人狠狠 | av一区二区在线观看中文字幕 | 99免费| 久久久国产精品一区二区三区 | 色综合欧洲 | 亚洲国产美女久久久久 | 久久高清国产视频 | 日韩欧美视频一区二区 | 色99网| 久久九精品| va视频在线 | 在线观看小视频 | 日韩av图片 | 日韩视频免费观看高清完整版在线 | 欧美成人h版在线观看 | 国产清纯在线 | 2024国产精品视频 | 国产一区二区在线免费观看 | 丝袜美女视频网站 | 中文字幕黄色av | 天天干天天射天天爽 | 成年人app网址 | av天天色| 黄色国产区 | 国产色婷婷在线 | 综合色综合色 | 欧美精品一区二区免费 | 超碰在线cao | 99久久婷婷国产一区二区三区 | 久久在线免费观看 | 久日视频 | 欧美一级艳片视频免费观看 | 午夜精品久久久久久久久久 | 久久超| 黄色电影网站在线观看 | 狠狠的操 | 天天做天天射 | 亚洲综合最新在线 | 成人av直播| 亚洲黄色av网址 | 黄污视频大全 | 日韩欧美一区二区三区在线 | www.com黄 | 亚洲黄色免费在线看 | 国产原创av在线 | 亚洲精品国产免费 | 欧美在线日韩在线 | 天无日天天操天天干 | 国产成人久久久77777 | av中文电影 | 超碰在线人人97 | 日韩一二三区不卡 | 欧美性生活久久 | 日韩av播放在线 | 亚洲香蕉在线观看 | 久久免费国产精品 | 狠狠综合网| 中文字幕丝袜一区二区 | 天天操狠狠干 | 久久黄网站| 亚洲精品一区中文字幕乱码 | 夜夜看av| 国产美女精彩久久 | 日韩有码专区 | 丝袜网站在线观看 | 国产精品久久久久久久婷婷 | 美女视频黄免费网站 | 国产精品中文字幕在线 | 成片人卡1卡2卡3手机免费看 | 日韩毛片在线免费观看 | 日日日视频| 国产a精品| 欧美日比视频 | 91九色蝌蚪在线 | 麻豆视频在线免费看 | 97在线观看视频 | 久久久69 | 99视频精品全部免费 在线 | 免费在线播放视频 | 欧美人人爱 | 精品在线亚洲视频 | 五月天堂网| 91精品国自产拍天天拍 | 国产精品video爽爽爽爽 | 六月婷操 | 精品一区二区亚洲 | 天天透天天插 | 免费看三级黄色片 | 国产视频首页 | 最近中文字幕免费 | 色av婷婷| www.av中文字幕.com | 亚洲精品66 | 久久av中文字幕片 | 国产一区二区免费在线观看 | 国产精选在线 | 97超碰人人模人人人爽人人爱 | 超碰在线97观看 | 五月综合色婷婷 | 欧美性一级观看 | 国产系列在线观看 | 探花视频在线观看免费版 | 成年人在线观看视频免费 | 日韩欧美精品一区二区三区经典 | 日韩精品2区 | 日日夜夜狠狠操 | 婷婷婷国产在线视频 | 在线看片一区 | 91久久偷偷做嫩草影院 | 日本一区二区三区视频在线播放 | 久久xxxx| 欧美一级日韩免费不卡 | 韩日在线一区 | 香蕉成人在线视频 | 草久久影院 | 欧美国产精品久久久久久免费 | 97色国产| 日日夜夜精品免费视频 | 色美女在线| 久久国产欧美日韩 | 国产91精品久久久久 | 日韩欧美电影在线 | 国产精品理论在线观看 | 狠狠干在线 | 日韩视频中文 | 青草草在线 | 婷婷在线色| 日p视频在线观看 | 精品亚洲欧美一区 | 国内久久久久 | 狠狠干,狠狠操 | 欧美最新另类人妖 | 国产精品久久视频 | 91在线精品一区二区 | 欧美91精品久久久久国产性生爱 | 日韩色区 | 亚洲免费在线视频 | www日韩| 精品国产视频在线 | 国产高清av免费在线观看 | 精品国产免费人成在线观看 | 成人理论在线观看 | 涩涩网站在线观看 | 伊人五月天 | 综合天堂av久久久久久久 | 国产成人免费 | 中文字幕成人av | 国产精品电影在线 | 亚洲黄色小说网址 | 美女精品 | 亚洲国产精品久久久久婷婷884 | 偷拍福利视频一区二区三区 | 人人爽久久涩噜噜噜网站 | 欧美日本国产在线观看 | 亚洲美女免费精品视频在线观看 | 91精品视频在线观看免费 | 麻豆极品| 激情综合六月 | 91大神精品视频 | 国产看片网站 | 亚洲片在线资源 | 91在线永久 | 久久免费的精品国产v∧ | 国产精品久久婷婷六月丁香 | 日本中文在线观看 | 激情综合电影网 | 97狠狠干| 免费av试看 | 99久久精品国产一区 | 日韩av一区在线观看 | 五月婷在线 | 91最新视频| 亚洲国产精品va在线看黑人动漫 | 日韩免费小视频 | 色99视频| 日本公妇在线观看高清 | 91女人18片女毛片60分钟 | 精品视频123区在线观看 | 国产成人一区二区三区在线观看 | 国产精品久久久久久久久久久久午夜 | 日韩视频一区二区在线 | 综合网中文字幕 | 国产黄网在线 | 国产午夜一区二区 | 韩日电影在线观看 | 久二影院 | 久久精品国产一区二区电影 | 国产精品久久久久9999吃药 | 国产专区欧美专区 | 久久精品人人做人人综合老师 | 亚洲视频中文 | 中文字幕精品一区二区精品 | 六月婷婷久香在线视频 | 九九在线视频 | 99c视频高清免费观看 | 精品成人国产 | 国产精品欧美日韩在线观看 | 成人动漫一区二区 | 毛片黄色一级 | 亚洲午夜电影网 | www日| 色婷婷综合在线 | 81精品国产乱码久久久久久 | 久久免费精品视频 | 亚洲精品视频一二三 | 九九天堂 | 亚洲最大av网 | 国产视频在线观看一区 | 黄色小网站在线观看 | 2020天天干天天操 | 97色在线观看免费视频 | 欧美极品裸体 | 欧美精品久久久久久久久老牛影院 | 久久婷婷视频 | 久久精品视频在线 | 色视频网页| 91最新在线视频 | 国内精品久久久久久久久 | 精品中文字幕在线播放 | 96视频在线 | 久久影视一区 | 中文字幕一二三区 | 黄色毛片视频 | 天天操导航 | 国产视频九色蝌蚪 | 久久这里只有精品视频99 | 欧美亚洲国产精品久久高清浪潮 | 精品亚洲va在线va天堂资源站 | 尤物97国产精品久久精品国产 | www..com黄色片| 97在线观视频免费观看 | 在线看片日韩 | 日本中文一区二区 | 日韩在线观看网站 | 91在线国产观看 | 久久国产女人 | 色婷婷久久久综合中文字幕 | 日日躁夜夜躁xxxxaaaa | 精品中文字幕在线 | 激情婷婷在线 | 视频在线观看入口黄最新永久免费国产 | 2022久久国产露脸精品国产 | 丁香六月国产 | 亚洲国产成人久久 | 日韩中文字幕免费视频 | 最近最新中文字幕 | 99精品视频免费看 | 日韩av一区二区三区在线观看 | 免费国产在线观看 | 手机av永久免费 | 夜色资源网 | 偷拍福利视频一区二区三区 | 伊人五月天 | 午夜精品久久 | a色视频 | 不卡av在线 | 日韩视频一二三区 | 日韩有码在线观看视频 | 麻豆视频国产 | 久久久精品久久日韩一区综合 | 日韩电影一区二区三区在线观看 | 国产九九九精品视频 | 国产精品影音先锋 | 一区二区av | 九九亚洲精品 | 91人人爱| 日韩免费视频一区二区 | 久久婷婷影视 | 亚洲欧美国产精品 | 欧美日韩视频在线观看一区二区 | 黄色99视频 | 日av免费 | 国产成人精品一二三区 | 日日夜夜天天久久 | 黄色片视频在线观看 | 亚洲成年人在线播放 | 免费国产在线观看 | 国产亚洲精品电影 | 香蕉在线观看 | 99久久夜色精品国产亚洲96 | 1000部国产精品成人观看 | 国产精品久久久久久久久费观看 | 91成人精品国产刺激国语对白 | 97视频免费在线观看 | 中文字幕亚洲欧美 | 久久免费视频在线观看30 | 色视频在线观看免费 | 日韩中文字幕电影 | 日韩视频在线观看视频 | 99视频一区 | 天天综合人人 | 免费看在线看www777 | av三级在线看 | 国产成人黄色片 | 97超碰在线人人 | 97超碰人人爱 | 成人网在线免费视频 | 精品亚洲在线 | 人人插人人草 | 天天狠狠操 | 免费久久片| 国产高清综合 | 91福利视频在线 | 色视频 在线 | 国产精品都在这里 | 91高清在线看 | 精品视频久久久久久 | 91精品国产99久久久久久红楼 | 在线www色 | 欧洲精品久久久久毛片完整版 | 狠狠干夜夜爽 | 久久99精品久久只有精品 | 欧美精品中文字幕亚洲专区 | 国产成人免费高清 | 91精彩视频 | 97超碰人人 | 亚洲人成影院在线 | 波多野结衣最新 | 国产日韩欧美在线观看视频 | 久久精品二区 | 免费视频久久久久久久 | 狠狠天天| 亚洲精品欧美精品 | 免费人成在线观看 | 日韩欧美视频免费看 | 久久狠狠一本精品综合网 | 国产专区日韩专区 | 成人在线免费看视频 | www.色就是色 | 欧美精品久久久久a | 91影视成人| 亚洲五月 | 国产91丝袜在线播放动漫 | 国产99久久久欧美黑人 | 欧美国产三区 | 精品国产一区在线观看 | 国产精品每日更新 | 蜜桃视频在线观看一区 | 热久久这里只有精品 | 成年人免费观看国产 | 国产一区在线免费观看视频 | 色综合色综合色综合 | 国产一级一片免费播放放a 一区二区三区国产欧美 | 国产精品美女久久久 | 亚洲精品五月天 | 久久精品99国产精品 | 爱爱av在线| 亚洲国产999| 韩国av在线播放 | 久久免费福利视频 | 91看片淫黄大片一级在线观看 | 黄色毛片在线观看 | 国产一区在线免费观看 | 国产精品高清在线观看 | 中文字幕亚洲高清 | 亚洲国产精品久久久久婷婷884 | av无限看 | 国内精品久久久久久久久久久 | 黄色网在线免费观看 | 婷婷中文字幕在线观看 | 天天拍天天草 | 九九九电影免费看 | 国产只有精品 | 天天操天天爽天天干 | 国产精品入口66mio女同 | 国产又粗又猛又色又黄视频 | 日本精品va在线观看 | 国产日韩视频在线播放 | 亚洲第一成网站 | 久久久久久蜜av免费网站 | 日韩和的一区二在线 | 尤物97国产精品久久精品国产 | 国产精品自产拍在线观看 | 国产夫妻性生活自拍 | 久色伊人| 精品色999 | 中文av在线播放 | 色播五月婷婷 | 日本黄色片一区二区 | 久久伊人五月天 | 国产精品wwwwww | 91麻豆精品国产91久久久久久久久 | 91在线文字幕 | 欧美一级在线观看视频 | 国产在线播放观看 | 黄色精品免费 | 欧美精品亚洲二区 | 99久久精品一区二区成人 | 97超碰在线久草超碰在线观看 | 免费在线观看亚洲视频 | 国内精品视频免费 | 97av在线 | 片黄色毛片黄色毛片 | 免费国产黄线在线观看视频 | 久久成熟| 激情综合网色播五月 | 久草www| 99视频在线观看视频 | 四虎影视av | 91桃色在线免费观看 | 国产精品亚洲片夜色在线 | 国产成人av免费在线观看 | 揉bbb玩bbb少妇bbb |