伊人久久大香线蕉综合影视_日韩精品少妇无码受不了_71pao成人国产永久免费视频_国产伦片中文免费观看_国产高清无码麻豆精品_九色综合伊人久久富二代_日韩黄色精品_日韩A∨精品日韩精品无码

vue-cli3插件初體驗(yàn)

2019-9-5    seo達(dá)人

vue-cli3發(fā)布自2018年8月,距離現(xiàn)在還不是特別久,最好搭建項(xiàng)目剛好用到,所以寫(xiě)下這篇文章,記錄一下踩坑經(jīng)歷。

vue的作者說(shuō)過(guò),vue-cli的本質(zhì)是模

版的拉取,太多的配置導(dǎo)致了模版的難以維護(hù),所以重構(gòu)后的版本提供了插件的功能,一個(gè)插件對(duì)應(yīng)一個(gè)功能,這樣避免了多個(gè)模版,也使得cli維護(hù)性得到提高,這也是本篇文章的核心介紹內(nèi)容。

我對(duì)cli3的理解是,一方面擴(kuò)展了cli2的核心能力 ,一方面封裝了webpack邏輯和配置。在過(guò)去要去做一個(gè)cli,通常需要閱讀cli2的代碼,cli2的核心模塊分別是 generator,prompts,template,git-repo,并用同樣的方法去做一個(gè)cli,這樣其實(shí)成本不小,cli3的插件就是提供了這樣一種能力,你用他的規(guī)則,去做一個(gè)npm包,并發(fā)到倉(cāng)庫(kù),就可以獲得這種能力。

首先,先介紹一下vue-cli3,他的發(fā)布帶了哪些新功能呢?我總結(jié)一下,大概有以下5點(diǎn):

1.功能豐富。這點(diǎn)相信大家都很好理解,他實(shí)在太好用了,模版里包含了大多數(shù)業(yè)界比較新的功能,可以一鍵集成typescripts等類(lèi)型定義工具, eslint/tslint等語(yǔ)法檢驗(yàn)工具,風(fēng)格規(guī)范,prettier,husky等格式化工具,還有postcss、pwa、vue-cli-server等等。

2.提高封裝性和擴(kuò)展性。這點(diǎn)指的是vue-cli-server,在過(guò)去webpack的邏輯和配置在項(xiàng)目里獨(dú)立維護(hù),各個(gè)項(xiàng)目之間就像孤島,vue-cli-server就像一個(gè)紐帶,連接起了各個(gè)項(xiàng)目,為項(xiàng)目升級(jí)webpack提供便利性,并且通過(guò)一份配置,提供個(gè)性化配置。

這里順帶扯一下vue.config.js, 這個(gè)東西就是用來(lái)個(gè)性化配置webpack的,他提供了很多的配置項(xiàng),具體可以看官方文檔:

https://cli.vuejs.org/zh/config/

我們挑幾個(gè)常用的來(lái)講:

configureWebpack,這個(gè)幾乎是用的比較多的,簡(jiǎn)單的方法,可以通過(guò)配置的方式配置,如下所示:

 
    
  1. module.exports = {
  2. configureWebpack: {
  3. plugins: [
  4. new MyAwesomeWebpackPlugin()
  5. ]
  6. }
  7. }復(fù)制代碼


這份配置,最終會(huì)被合并到原來(lái)的配置里,不會(huì)覆蓋。

復(fù)雜的方法,可以往這個(gè)字段傳一個(gè)函數(shù),如下所示:

 
  1. module.exports = {
  2. configureWebpack: config => {
  3. if (process.env.NODE_ENV === 'production') {
  4. // 為生產(chǎn)環(huán)境修改配置...
  5. } else {
  6. // 為開(kāi)發(fā)環(huán)境修改配置...
  7. }
  8. }
  9. }復(fù)制代碼

這樣就可以在一個(gè)函數(shù)里做一些簡(jiǎn)單的邏輯,config是webpack config,你可以直接修改config對(duì)象,也可以返回一個(gè)對(duì)象,這個(gè)對(duì)象最終也會(huì)被合并會(huì)webpack對(duì)象。

第三種方式,是通過(guò)webpack-chain來(lái)鏈?zhǔn)秸{(diào)用,代碼如下所示:

 
  1. module.exports = {
  2. chainWebpack: config => {
  3. config.module
  4. .rule('vue')
  5. .use('vue-loader')
  6. .loader('vue-loader')
  7. .tap(options => {
  8. // 修改它的選項(xiàng)...
  9. return options
  10. })
  11. }
  12. }復(fù)制代碼

3.提供圖形化管理界面,最所周知,gui易懂,cli,vue在降低學(xué)習(xí)門(mén)檻這方面,已經(jīng)是非常好了。

通過(guò)vue ui指令,可以查看編譯各個(gè)模塊的情況,模塊依賴情況,插件的情況,非常便于管理。

4.便捷性。vue-cli-server不僅支持項(xiàng)目的編譯,也支持單文件的編譯,具體的方法可以看官網(wǎng)介紹。

5.提供了cli的核心能力,也就是問(wèn)詢,模版渲染,文件生成這幾大核心功能。具體的示意圖可以看如下:


以上是cli2的核心模塊,需要引用hbs,inquirer.js,metalsmit等基本模塊,cli3的插件機(jī)制基本幫我們封裝好了,我們只需要根據(jù)插件的規(guī)范,就可以獲取這種能力。

由于有的讀者可能對(duì)cli2的流程比較陌生,所以我想簡(jiǎn)單描述一下cli2的工作流程,如下圖所示:


首先,cli2提供init指令,執(zhí)行這個(gè)指令,會(huì)去遠(yuǎn)程拿模版文件,并拉到本地用戶目錄的.vue-template的文件夾,然后通過(guò)meta里問(wèn)題,去問(wèn)你,然后生成最終模版到你執(zhí)行命令的目錄。

說(shuō)完vue-cli2,我們來(lái)看看vue-cli3的插件是怎么樣的?

首先根據(jù)插件的位置,我們分成了cli插件,和service插件。cli的插件有完整的開(kāi)發(fā)目錄,所能做的事情也比較多一點(diǎn),service插件是一份js文件,導(dǎo)出一個(gè)函數(shù)。

cli插件的目錄如下所示:


具體的用發(fā)可以在官網(wǎng)了解到:

https://cli.vuejs.org/zh/dev-guide/plugin-dev.html#cli-%E6%8F%92%E4%BB%B6

那么他們是怎么工作的呢?

cli的代碼主要在@vue/cli 下面,他的大概的流程如下圖所示:


@vue/cli/bin/vue.js:

 
  1. program
  2. .command('add <plugin> [pluginOptions]')
  3. .description('install a plugin and invoke its generator in an already created project')
  4. .option('--registry <url>', 'Use specified npm registry when installing dependencies (only for npm)')
  5. .allowUnknownOption()
  6. .action((plugin) => {
  7. require('../lib/add')(plugin, minimist(process.argv.slice(3)))
  8. })
  9. program
  10. .command('invoke <plugin> [pluginOptions]')
  11. .description('invoke the generator of a plugin in an already created project')
  12. .option('--registry <url>', 'Use specified npm registry when installing dependencies (only for npm)')
  13. .allowUnknownOption()
  14. .action((plugin) => {
  15. require('../lib/invoke')(plugin, minimist(process.argv.slice(3)))
  16. })復(fù)制代碼

首先,執(zhí)行vue指令,會(huì)執(zhí)行@vue/cli/bin/vue.js,這里定義了vue add , vue invoke,vue build,vue serve,等指令,可以看出,add指令其實(shí)是包含invoke指令的,add指令主要是安裝一個(gè)包,并且觸發(fā)generator.js,invoke主要是觸發(fā)generator.js。

然后再來(lái)看@vue/cli/lib/add.js,

 
  1. const packageManager = loadOptions().packageManager || (hasProjectYarn(context) ? 'yarn' : 'npm')
  2. await installPackage(context, packageManager, options.registry, packageName)復(fù)制代碼
 
  1. const generatorPath = resolveModule(`${packageName}/generator`, context)
  2. if (generatorPath) {
  3. invoke(pluginName, options, context)
  4. } else {
  5. log(`Plugin ${packageName} does not have a generator to invoke`)
  6. }復(fù)制代碼

add.js主要安裝包,然后執(zhí)行invoke模塊,我們?cè)倏纯磇nvoke模塊做了什么。

@vue/cli/lib/invoke.js

 
    
  1. const generator = new Generator(context, {
  2. pkg,
  3. plugins: [plugin],
  4. files: await readFiles(context),
  5. completeCbs: createCompleteCbs,
  6. invoking: true
  7. })復(fù)制代碼

invoke里主要實(shí)例化generator類(lèi),然后把你的插件當(dāng)成參數(shù)傳給類(lèi),generator類(lèi)算是vue-cli的核心類(lèi)了。

@vue/cli/lib/generator.js

 
  1. plugins.forEach(({ id, apply, options }) => {
  2. const api = new GeneratorAPI(id, this, options, rootOptions)
  3. apply(api, options, rootOptions, invoking)
  4. })復(fù)制代碼

這個(gè)類(lèi)主要負(fù)責(zé)執(zhí)行你的插件,然后把generatorapi作為參數(shù)傳入插件的generator.js導(dǎo)出的函數(shù)。

具體的vue-cli插件的開(kāi)發(fā)是怎么樣的呢,我寫(xiě)了一個(gè)demo,用在模擬多項(xiàng)目的ci模版管理,通常每個(gè)項(xiàng)目都有一份.gitlab-ci.yml模版,所以我們一般可以抽出一個(gè)公共的ci模版來(lái)管理,這里我用cli插件來(lái)管理,真正的項(xiàng)目可能不具備可行性,這里我只是用來(lái)寫(xiě)一個(gè)例子。



目錄結(jié)構(gòu)大概如上所示,執(zhí)行vue add foo后,就會(huì)出現(xiàn)propmts對(duì)話框,然后選擇答案后,就會(huì)根據(jù)配置生成模版到你的根目錄下。


_gitlab-ci.yml ,根據(jù)問(wèn)題選擇是否用私有npm倉(cāng)庫(kù):

 
  1. script:
  2. <%_ if (options.config === 'npm') { _%>
  3. - nrm add companynpm http://xxx.y.cn:XXXXX/
  4. - nrm use companynpm
  5. <%_ } _%>復(fù)制代碼

prompts.js,主要一些問(wèn)題的設(shè)計(jì):

 
  1. module.exports = [
  2. {
  3. name: 'config',
  4. type: 'list',
  5. message: `是否需要切換內(nèi)部源:`,
  6. choices: [
  7. {
  8. name: '需要',
  9. value: 'npm',
  10. short: ''
  11. },
  12. {
  13. name: '不需要',
  14. value: 'npm',
  15. short: ''
  16. }
  17. ]
  18. }
  19. ]復(fù)制代碼

generator.js 這個(gè)模塊很簡(jiǎn)單,直接渲染模版

 
  1. module.exports = (api, options, rootOptions) => {
  2. // 復(fù)制并用 ejs 渲染 `./template` 內(nèi)所有的文件
  3. api.render('./template')
  4. }復(fù)制代碼

service插件主要放在項(xiàng)目本地,是一份js代碼,然后導(dǎo)出一個(gè)函數(shù),通過(guò)package.json配置指向這個(gè)js文件的路徑,


service主要依賴的代碼在@vue/cli-service里,首先先執(zhí)行@vue/cli-service/bin/vue-cli-service.js文件,


 
  1. const Service = require('../lib/Service')
  2. const service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd())
  3. .....
  4. service.run(command, args, rawArgv).catch(err => {
  5. error(err)
  6. process.exit(1)
  7. })復(fù)制代碼

該文件實(shí)例化Service類(lèi),這個(gè)類(lèi)是service插件的核心類(lèi),然后再執(zhí)行run方法。

再來(lái)看看@vue/cli-service/lib/Service.js的代碼:

首先構(gòu)造函數(shù)執(zhí)行resolvePlugin,把官方提供的插件和項(xiàng)目里的插件都加載進(jìn)來(lái),

 
  1. constructor (context, { plugins, pkg, inlineOptions, useBuiltIn } = {}) {
  2. this.plugins = this.resolvePlugins(plugins, useBuiltIn)
  3. }復(fù)制代碼

resolvePlugin這個(gè)函數(shù)主要在這里引入本地的插件:

 
  1. resolvePlugins (inlinePlugins, useBuiltIn) {
  2. // Local plugins
  3. if (this.pkg.vuePlugins && this.pkg.vuePlugins.service) {
  4. const files = this.pkg.vuePlugins.service
  5. if (!Array.isArray(files)) {
  6. throw new Error(`Invalid type for option 'vuePlugins.service', expected 'array' but got ${typeof files}.`)
  7. }
  8. plugins = plugins.concat(files.map(file => ({
  9. id: `local:${file}`,
  10. apply: loadModule(file, this.pkgContext)
  11. })))
  12. }
  13. return plugins
  14. }復(fù)制代碼

run方法又會(huì)執(zhí)行init方法,在該方法內(nèi)部執(zhí)行插件:

 
  1. init (mode = process.env.VUE_CLI_MODE) {
  2. // apply plugins.
  3. this.plugins.forEach(({ id, apply }) => {
  4. apply(new PluginAPI(id, this), this.projectOptions)
  5. }
  6. }復(fù)制代碼


那么service插件要如何來(lái)實(shí)踐,我們來(lái)看如下的例子:

首先在package.json配置一下,指向本地的插件my-service.js

 
  1. "vuePlugins": {
  2. "service": [
  3. "my-service.js"
  4. ]
  5. }復(fù)制代碼

my-service.js的代碼如下所示:

 
  1. const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;
  2. const webpack = require('webpack');
  3. module.exports = (api, projectOptions) => {
  4. api.registerCommand(
  5. 'analyze',
  6. {
  7. description: 'start analyze server',
  8. },
  9. (args) => {
  10. // 注冊(cè) `vue-cli-service analyze`
  11. let options = projectOptions.pluginOptions.demoOptions
  12. console.log(options);
  13. // resolve webpack config
  14. const webpackConfig = api.resolveWebpackConfig();
  15. webpackConfig.plugins.push(new BundleAnalyzerPlugin());
  16. webpack(webpackConfig,(err,stats)=>{
  17. if(!err) console.log('打包成功')
  18. })
  19. },
  20. );
  21. };復(fù)制代碼

該插件主要擴(kuò)展vue-cli-service的指令,加了analyze指令,這個(gè)指令主要會(huì)向webpack的配置增加一個(gè)BundleAnalyzerPlugin的插件,用來(lái)分析包的大小,當(dāng)然,這里也是沒(méi)有太大的現(xiàn)實(shí)可行性的,vue-cli 提供了vue ui的Gui界面讓你看到打包后各個(gè)模塊的大小,或者cli的命令,vue-cli-service build --report,也能生一個(gè)報(bào)告,效果也是一樣。


至此,vue-cli和service插件的使用和實(shí)現(xiàn)都介紹完了,如果有哪里寫(xiě)的不到位,希望各位大神能提出指正

日歷

鏈接

個(gè)人資料

存檔

色尼玛亚洲综合影院| 久久久精品大字幕| 不卡视频在线观看欧美| 免费看a级黄色片| 长腿黑丝高跟| 亚洲国产精品成人久久小说| 大又大粗又爽又黄少妇毛片口| 看十八女毛片水多多多| www.色视频.com| 久久精品久久精品一区二区三区| 国产精品蜜桃在线观看| 国产精品一区二区三区四区免费观看| 日本午夜av视频| 欧美性猛交╳xxx乱大交人| 精品人妻熟女av久视频| 亚洲人成网站在线观看播放| 免费看a级黄色片| 九九热线精品视视频播放| 国产精品熟女久久久久浪| 高清在线视频一区二区三区 | 在线播放国产精品三级| 黄色日韩在线| 菩萨蛮人人尽说江南好唐韦庄 | 赤兔流量卡办理| 国产一级毛片七仙女欲春2| 美女国产视频在线观看| 亚洲av熟女| 韩国高清视频一区二区三区| 国产伦一二天堂av在线观看| 国产极品天堂在线| 久久精品综合一区二区三区| 国产成人aa在线观看| 中文字幕久久专区| 两个人的视频大全免费| 精品久久国产蜜桃| 少妇熟女欧美另类| 欧美激情国产日韩精品一区| 久久精品国产自在天天线| 国产黄片视频在线免费观看| 亚洲不卡免费看| 久久久久国产网址| 美女国产视频在线观看| 中文乱码字字幕精品一区二区三区 | 日韩大片免费观看网站 | 国产探花极品一区二区| 国产三级在线视频| 少妇裸体淫交视频免费看高清| 午夜激情福利司机影院| 亚洲性久久影院| av播播在线观看一区| 一级二级三级毛片免费看| 久久人人爽人人爽人人片va| 国产高清视频在线观看网站| 免费不卡的大黄色大毛片视频在线观看 | 99久久精品一区二区三区| 国产伦在线观看视频一区| 国产精品不卡视频一区二区| 九草在线视频观看| 久久精品久久久久久噜噜老黄 | 日本黄色视频三级网站网址| 欧美一区二区国产精品久久精品| 国产精品久久久久久精品电影小说 | 日本五十路高清| 噜噜噜噜噜久久久久久91| 国产成人aa在线观看| 小蜜桃在线观看免费完整版高清| 波多野结衣高清无吗| 精品久久久久久久久av| 亚洲一区高清亚洲精品| 欧美人与善性xxx| 国产精品国产三级专区第一集| 精品久久久久久久久av| 啦啦啦啦在线视频资源| 99久久九九国产精品国产免费| 日韩欧美精品v在线| 青青草视频在线视频观看| 国产v大片淫在线免费观看| 岛国毛片在线播放| 色吧在线观看| 亚洲av免费高清在线观看| 国产成人精品一,二区| 国产老妇女一区| 菩萨蛮人人尽说江南好唐韦庄 | 麻豆成人av视频| 黄片无遮挡物在线观看| 岛国在线免费视频观看| 午夜久久久久精精品| 老司机影院毛片| 男人舔女人下体高潮全视频| 久久精品综合一区二区三区| 狂野欧美激情性xxxx在线观看| 最近视频中文字幕2019在线8| 春色校园在线视频观看| 国产片特级美女逼逼视频| 美女高潮的动态| 久久精品国产鲁丝片午夜精品| 精品久久久久久久人妻蜜臀av| 在线a可以看的网站| 久久99蜜桃精品久久| 国产成人免费观看mmmm| 青青草视频在线视频观看| 亚洲最大成人手机在线| 日韩强制内射视频| 一区二区三区乱码不卡18| 久久久a久久爽久久v久久| 国产极品精品免费视频能看的| 亚洲精品乱久久久久久| 春色校园在线视频观看| 久久精品国产亚洲av天美| 99热这里只有是精品50| 色吧在线观看| 最近手机中文字幕大全| 嘟嘟电影网在线观看| 99久久精品一区二区三区| 精品一区二区三区人妻视频| 亚洲自偷自拍三级| 免费大片18禁| 在现免费观看毛片| 中文字幕亚洲精品专区| 小蜜桃在线观看免费完整版高清| 全区人妻精品视频| 久久精品夜夜夜夜夜久久蜜豆| 中国国产av一级| 国产成人aa在线观看| 啦啦啦韩国在线观看视频| 小说图片视频综合网站| 黄片wwwwww| 国产精品女同一区二区软件| 国产真实乱freesex| 蜜桃久久精品国产亚洲av| 精品少妇黑人巨大在线播放 | 国模一区二区三区四区视频| 亚洲久久久久久中文字幕| 久久精品国产亚洲av涩爱| 只有这里有精品99| 床上黄色一级片| 精品欧美国产一区二区三| 内地一区二区视频在线| 国产伦在线观看视频一区| 亚洲激情五月婷婷啪啪| 精品午夜福利在线看| 久久午夜福利片| 亚洲国产成人一精品久久久| 亚洲精华国产精华液的使用体验| 两个人的视频大全免费| 国产精品,欧美在线| 天美传媒精品一区二区| 国产老妇伦熟女老妇高清| 日本三级黄在线观看| 亚洲精华国产精华液的使用体验| 久久精品91蜜桃| 午夜a级毛片| 免费观看人在逋| 久99久视频精品免费| 老女人水多毛片| 免费av不卡在线播放| 男女下面进入的视频免费午夜| 久久综合国产亚洲精品| 午夜激情福利司机影院| 精品国内亚洲2022精品成人| 国产精品久久久久久久电影| 国产伦精品一区二区三区视频9| 久久久久久大精品| 亚洲av免费高清在线观看| 老女人水多毛片| 国产高清不卡午夜福利| 26uuu在线亚洲综合色| av视频在线观看入口| 久久99热6这里只有精品| 国产伦精品一区二区三区四那| 国产老妇女一区| 热99在线观看视频| 国产黄片视频在线免费观看| 久久草成人影院| 久久久久免费精品人妻一区二区| 亚洲精品日韩在线中文字幕| 国产精品一区二区三区四区久久| 69人妻影院| 久久精品久久久久久久性| 国产在线男女| 1000部很黄的大片| 国产精品av视频在线免费观看| 91在线精品国自产拍蜜月| 非洲黑人性xxxx精品又粗又长| 日本一本二区三区精品| 老司机影院毛片| 久久婷婷人人爽人人干人人爱| 91在线精品国自产拍蜜月| 久久人人爽人人片av| 啦啦啦观看免费观看视频高清| 精品熟女少妇av免费看| 日韩制服骚丝袜av| 亚洲精品影视一区二区三区av| 极品教师在线视频| 欧美人与善性xxx| 亚洲国产精品sss在线观看| 观看美女的网站| 国产精品久久久久久精品电影小说 | 国产视频内射| 小蜜桃在线观看免费完整版高清| 中文天堂在线官网| 一本—道久久a久久精品蜜桃钙片 精品乱码久久久久久99久播 | 久久久久久久亚洲中文字幕| 国产精品一区二区在线观看99 | 天堂中文最新版在线下载 | 国产中年淑女户外野战色| 夜夜爽夜夜爽视频| 免费观看在线日韩| 亚洲av男天堂| 99久久无色码亚洲精品果冻| 国产v大片淫在线免费观看| 九草在线视频观看| 日韩中字成人| 久久精品久久精品一区二区三区| 欧美3d第一页| 日韩国内少妇激情av| 日本午夜av视频| 国内揄拍国产精品人妻在线| 爱豆传媒免费全集在线观看| 中文乱码字字幕精品一区二区三区 | 日本免费a在线| 老司机影院成人| 亚洲国产精品久久男人天堂| 大香蕉久久网| 少妇人妻一区二区三区视频| 亚洲av电影在线观看一区二区三区 | 精品久久久久久久人妻蜜臀av| 人妻夜夜爽99麻豆av| 国国产精品蜜臀av免费| 一本久久精品| 直男gayav资源| 国产精品一区二区三区四区免费观看| 黄片wwwwww| 午夜福利在线观看吧| 成人亚洲精品av一区二区| 欧美激情国产日韩精品一区| 深夜a级毛片| 一个人免费在线观看电影| 国产美女午夜福利| 国产伦精品一区二区三区四那| 精品人妻视频免费看| av视频在线观看入口| 亚洲国产精品久久男人天堂| 大香蕉久久网| 国产精品久久久久久精品电影| 18禁在线无遮挡免费观看视频| 国产av一区在线观看免费| av.在线天堂| 长腿黑丝高跟| 久久久久网色| 最近最新中文字幕大全电影3| 夫妻性生交免费视频一级片| 久久久久精品久久久久真实原创| av在线播放精品| 女的被弄到高潮叫床怎么办| 看免费成人av毛片| 亚洲欧美成人综合另类久久久 | www.av在线官网国产| 国产真实伦视频高清在线观看| 亚洲av一区综合| 啦啦啦啦在线视频资源| 日韩国内少妇激情av| 欧美bdsm另类| 少妇猛男粗大的猛烈进出视频 | 亚洲欧洲日产国产| 精品无人区乱码1区二区| 欧美人与善性xxx| 少妇人妻一区二区三区视频| 天美传媒精品一区二区| 久久久国产成人精品二区| 国产成人freesex在线| 亚洲成人中文字幕在线播放| 国产成人a∨麻豆精品| 国产精品久久电影中文字幕| 亚洲av二区三区四区| 亚洲综合色惰| 男人的好看免费观看在线视频| 日韩视频在线欧美| 又粗又爽又猛毛片免费看| 日韩强制内射视频| 嘟嘟电影网在线观看| 网址你懂的国产日韩在线| 草草在线视频免费看| 午夜老司机福利剧场| 国产精品麻豆人妻色哟哟久久 | 波多野结衣高清无吗| 我要看日韩黄色一级片| 国产单亲对白刺激| 成年版毛片免费区| 久久精品久久久久久噜噜老黄 | 成年女人看的毛片在线观看| 国产黄a三级三级三级人| 麻豆乱淫一区二区| 国产午夜精品论理片| 在线观看一区二区三区| 好男人视频免费观看在线| 又黄又爽又刺激的免费视频.| 亚洲av日韩在线播放| 激情 狠狠 欧美| 婷婷色av中文字幕| 国产毛片a区久久久久| 99热网站在线观看| 大香蕉97超碰在线| 国产欧美日韩精品一区二区| 亚洲精品日韩在线中文字幕| 两个人视频免费观看高清| 国产乱人偷精品视频| 熟女电影av网| 国产高清国产精品国产三级 | kizo精华| eeuss影院久久| 免费搜索国产男女视频| 又爽又黄a免费视频| 午夜福利在线观看免费完整高清在| 天堂√8在线中文| 欧美xxxx性猛交bbbb| 搞女人的毛片| 国产成人91sexporn| 99久国产av精品国产电影| 国产伦精品一区二区三区四那| 久久国产乱子免费精品| videossex国产| 精品久久久噜噜| 久久99精品国语久久久| 岛国在线免费视频观看| 高清在线视频一区二区三区 | 99在线人妻在线中文字幕| 成年免费大片在线观看| 国语自产精品视频在线第100页| 国产男人的电影天堂91| 国产亚洲一区二区精品| h日本视频在线播放| 国产男人的电影天堂91| 韩国av在线不卡| 少妇高潮的动态图| 国产精品久久久久久精品电影| 少妇人妻精品综合一区二区| 欧美+日韩+精品| 日韩欧美三级三区| 精品人妻熟女av久视频| 91狼人影院| 男人舔女人下体高潮全视频| 毛片女人毛片| 国产老妇女一区| 五月伊人婷婷丁香| 亚洲av免费高清在线观看| 日日摸夜夜添夜夜添av毛片| 亚洲成人精品中文字幕电影| 国产精品女同一区二区软件| 精品人妻一区二区三区麻豆| 婷婷色麻豆天堂久久 | 国产伦理片在线播放av一区| 日韩中字成人| 国内精品宾馆在线| 伦精品一区二区三区| 美女黄网站色视频| 桃色一区二区三区在线观看| 色综合色国产| 精品午夜福利在线看| 色视频www国产| 国产精品一区二区在线观看99 | 久久国产乱子免费精品| 18禁裸乳无遮挡免费网站照片| 中文资源天堂在线| 色综合亚洲欧美另类图片| 国产麻豆成人av免费视频| 久久久久久久久久久免费av| 床上黄色一级片| 内地一区二区视频在线| 久久热精品热| 亚洲aⅴ乱码一区二区在线播放| 亚洲av中文字字幕乱码综合| 免费播放大片免费观看视频在线观看 | 18禁裸乳无遮挡免费网站照片| 欧美潮喷喷水| 久久国产乱子免费精品| 好男人在线观看高清免费视频| 国产探花极品一区二区| 国产精品人妻久久久影院| 99热这里只有是精品在线观看| 老司机影院毛片| 亚洲av电影在线观看一区二区三区 | 午夜福利网站1000一区二区三区| 18禁在线播放成人免费| 精品人妻一区二区三区麻豆| 婷婷色麻豆天堂久久 | 在线a可以看的网站| 中国国产av一级| 国产黄a三级三级三级人| 又爽又黄无遮挡网站| 亚洲欧美精品自产自拍| 免费观看人在逋| 免费观看精品视频网站| 少妇丰满av| 欧美xxxx性猛交bbbb| 色网站视频免费| 一级毛片久久久久久久久女| 国产精品麻豆人妻色哟哟久久 | 精品久久久久久电影网 | 久久热精品热| 18禁裸乳无遮挡免费网站照片| 亚洲在久久综合| 国产av不卡久久| 女的被弄到高潮叫床怎么办| 日本免费一区二区三区高清不卡| 午夜老司机福利剧场| 国产伦在线观看视频一区| 中文精品一卡2卡3卡4更新| 亚洲av不卡在线观看| 久久久午夜欧美精品| 99久久精品国产国产毛片| 伦精品一区二区三区| 久久人人爽人人爽人人片va| 欧美成人午夜免费资源| 国产av在哪里看| 国语对白做爰xxxⅹ性视频网站| 免费看光身美女| 男女国产视频网站| 中文字幕人妻熟人妻熟丝袜美| 人人妻人人澡欧美一区二区| 大香蕉97超碰在线| 三级经典国产精品| 青春草亚洲视频在线观看| 啦啦啦观看免费观看视频高清| 搡女人真爽免费视频火全软件| 国产亚洲一区二区精品| 人妻夜夜爽99麻豆av| 欧美xxxx黑人xx丫x性爽| 尾随美女入室| 久久精品影院6| 99热这里只有精品一区| 人人妻人人澡欧美一区二区| 亚洲国产精品成人久久小说| 三级经典国产精品| 青青草视频在线视频观看| 亚洲av中文字字幕乱码综合| 国产私拍福利视频在线观看| 欧美成人免费av一区二区三区| 又粗又爽又猛毛片免费看| 免费观看的影片在线观看| 欧美不卡视频在线免费观看| 成人漫画全彩无遮挡| 中文字幕久久专区| 亚洲国产精品专区欧美| a级毛色黄片| 欧美精品一区二区大全| 六月丁香七月| 国产成人一区二区在线| 日韩三级伦理在线观看| 欧美另类亚洲清纯唯美| 亚洲精品久久久久久婷婷小说 | 不卡视频在线观看欧美| www.av在线官网国产| 成人特级av手机在线观看| 国产又黄又爽又无遮挡在线| 亚洲精品成人久久久久久| 熟女人妻精品中文字幕| 精品不卡国产一区二区三区| 女人十人毛片免费观看3o分钟| 看片在线看免费视频| 美女黄网站色视频| 欧美成人免费av一区二区三区| 波多野结衣高清无吗| 99久久精品国产国产毛片| 精品酒店卫生间| 少妇的逼好多水| 久久鲁丝午夜福利片| 丰满乱子伦码专区| 老女人水多毛片| 国产伦精品一区二区三区视频9| 特大巨黑吊av在线直播| 欧美一区二区精品小视频在线| 18禁在线无遮挡免费观看视频| 亚洲无线观看免费| 国产成人福利小说| 观看免费一级毛片| 久久久久精品久久久久真实原创| 99热这里只有是精品在线观看| 我的老师免费观看完整版| 一边摸一边抽搐一进一小说| 看十八女毛片水多多多| 国产精品女同一区二区软件| 免费人成在线观看视频色| 我的女老师完整版在线观看| 国产精品伦人一区二区| 久久精品人妻少妇| 99久久精品国产国产毛片| 亚洲经典国产精华液单| 天美传媒精品一区二区| 一级毛片aaaaaa免费看小| 亚州av有码| 国产乱人偷精品视频| 日韩精品有码人妻一区| 色视频www国产| 日韩精品青青久久久久久| 国产成人aa在线观看| 精品人妻偷拍中文字幕| 亚洲欧美日韩高清专用| 欧美区成人在线视频| 亚洲精品影视一区二区三区av| 伊人久久精品亚洲午夜| 深爱激情五月婷婷| 久久久久久久久中文| 国产精品三级大全| 国产色婷婷99| 日日撸夜夜添| 久久久久久久久久久丰满| 看非洲黑人一级黄片| 婷婷色av中文字幕| 成人三级黄色视频| 成人二区视频| 日本与韩国留学比较| 亚洲人与动物交配视频| 永久免费av网站大全| 99久国产av精品国产电影| 免费av不卡在线播放| 欧美激情在线99| 天天一区二区日本电影三级| 免费看美女性在线毛片视频| 国产伦一二天堂av在线观看| 国产精品爽爽va在线观看网站| 亚洲人成网站在线观看播放| 久久久久久久午夜电影| 久久精品熟女亚洲av麻豆精品 | 人妻夜夜爽99麻豆av| 99久国产av精品国产电影| 午夜福利在线观看免费完整高清在| 一本久久精品| 精品熟女少妇av免费看| 国产亚洲精品久久久com| 在线天堂最新版资源| 男插女下体视频免费在线播放| 欧美日韩综合久久久久久| 一级毛片我不卡| 全区人妻精品视频| 国产亚洲av嫩草精品影院| 亚洲欧美精品自产自拍| 一本久久精品| 国产一级毛片七仙女欲春2| 午夜福利视频1000在线观看| 亚洲第一区二区三区不卡| videossex国产| av福利片在线观看| 能在线免费看毛片的网站| 久久精品91蜜桃| 日韩亚洲欧美综合| 纵有疾风起免费观看全集完整版 | 中文字幕熟女人妻在线| 日韩欧美在线乱码| 国产高清国产精品国产三级 | 99视频精品全部免费 在线| 亚洲国产最新在线播放| 国产午夜福利久久久久久| 日韩亚洲欧美综合| 91午夜精品亚洲一区二区三区| 亚洲成人久久爱视频| 日韩av在线免费看完整版不卡| 人妻系列 视频| 日韩欧美精品v在线| 久热久热在线精品观看| av播播在线观看一区| 亚洲国产成人一精品久久久| 亚洲成人中文字幕在线播放| 亚洲欧美精品综合久久99| 日本色播在线视频| 晚上一个人看的免费电影| 久久久久精品久久久久真实原创| 高清毛片免费看| 免费av毛片视频| 国产日韩欧美在线精品| 少妇的逼好多水| 97超碰精品成人国产| 久久综合国产亚洲精品| 成人高潮视频无遮挡免费网站| 深爱激情五月婷婷| 亚洲性久久影院| 日日摸夜夜添夜夜爱| av天堂中文字幕网| 国内精品宾馆在线| 22中文网久久字幕| 韩国高清视频一区二区三区| 国产精品无大码| 欧美成人午夜免费资源| 搡女人真爽免费视频火全软件| 亚洲天堂国产精品一区在线| 免费不卡的大黄色大毛片视频在线观看 | 一本久久精品| 欧美精品一区二区大全| 国产精品一二三区在线看| 五月伊人婷婷丁香| 亚洲国产精品久久男人天堂| 日韩欧美三级三区| 成人午夜精彩视频在线观看| 在线观看美女被高潮喷水网站| 国产免费男女视频| 亚洲精品影视一区二区三区av| 老司机影院毛片| 国产亚洲av嫩草精品影院| 亚洲精品乱码久久久久久按摩| 啦啦啦啦在线视频资源| 最新中文字幕久久久久| 久久久a久久爽久久v久久| 97在线视频观看| 久久精品国产亚洲av涩爱| 亚洲高清免费不卡视频| 身体一侧抽搐| 国产精品一二三区在线看| 久久精品久久久久久噜噜老黄 | 精品一区二区免费观看| 一夜夜www| 国产白丝娇喘喷水9色精品| 禁无遮挡网站| 天天躁夜夜躁狠狠久久av| 美女高潮的动态| 搡女人真爽免费视频火全软件|