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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离

發布時間:2024/7/5 vue 65 豆豆

一、認識webpack

  • 什么是webpack?
    這個webpack還真不是一兩句話可以說清楚的。
  • 我們先看看官方的解釋:
    At its core, webpack is a static module bundler for modern JavaScript applications.
  • 從本質上來講,webpack是一個現代的JavaScript應用的靜態模塊打包工具。
    但是它是什么呢?用概念解釋概念,還是不清晰。
    我們從兩個點來解釋上面這句話:模塊 和 打包
  • 前端模塊化:
    • 在前面學習中,我已經用了大量的篇幅解釋了為什么前端需要模塊化。
    • 而且我也提到了目前使用前端模塊化的一些方案:AMD、CMD、CommonJS、ES6。
    • 在ES6之前,我們要想進行模塊化開發,就必須借助于其他的工具,讓我們可以進行模塊化開發。
    • 并且在通過模塊化開發完成了項目后,還需要處理模塊間的各種依賴,并且將其進行整合打包。
    • 而webpack其中一個核心就是讓我們可能進行模塊化開發,并且會幫助我們處理模塊間的依賴關系。
    • 而且不僅僅是JavaScript文件,我們的CSS、圖片、json文件等等在webpack中都可以被當做模塊來使用(在后續我們會看到)。
      這就是webpack中模塊化的概念。
  • 打包如何理解呢?
    • 理解了webpack可以幫助我們進行模塊化,并且處理模塊間的各種復雜關系后,打包的概念就非常好理解了。
    • 就是將webpack中的各種資源模塊進行打包合并成一個或多個包(Bundle)。
    • 并且在打包的過程中,還可以對資源進行處理,比如壓縮圖片,將scss轉成css,將ES6語法轉成ES5語法,將TypeScript轉成JavaScript等等操作。

    但是打包的操作似乎grunt/gulp也可以幫助我們完成,它們有什么不同呢?
    和grunt/gulp的對比:

    grunt/gulp的核心是Task
    我們可以配置一系列的task,并且定義task要處理的事務(例如ES6、ts轉化,圖片壓縮,scss轉成css)
    之后讓grunt/gulp來依次執行這些task,而且讓整個流程自動化。 所以grunt/gulp也被稱為前端自動化任務管理工具。

    我們來看一個gulp的task
    下面的task就是將src下面的所有js文件轉成ES5的語法。
    并且最終輸出到dist文件夾中。

    什么時候用grunt/gulp呢?

    • 如果你的工程模塊依賴非常簡單,甚至是沒有用到模塊化的概念。
    • 只需要進行簡單的合并、壓縮,就使用grunt/gulp即可。
    • 但是如果整個項目使用了模塊化管理,而且相互依賴非常強,我們就可以使用更加強大的webpack了。

    所以,grunt/gulp和webpack有什么不同呢?

    • grunt/gulp更加強調的是前端流程的自動化,模塊化不是它的核心。
    • webpack更加強調模塊化開發管理,而文件壓縮合并、預處理等功能,是他附帶的功能。

    二、webpack的安裝

  • 安裝webpack首先需要安裝Node.js,Node.js自帶了軟件包管理工具npm

  • 查看自己的node版本:

  • 全局安裝webpack(這里我先指定版本號3.6.0,因為vue cli2依賴該版本)

  • 局部安裝webpack(后續才需要)
    --save-dev是開發時依賴,項目打包后不需要繼續使用的。

  • 為什么全局安裝后,還需要局部安裝呢?

    • 在終端直接執行webpack命令,使用的全局安裝的webpack
    • 當在package.json中定義了scripts時,其中包含了webpack命令,那么使用的是局部webpack

    三、webpack的起步

    3.1 準備工作

    我們創建如下文件和文件夾:

    文件和文件夾解析:

  • dist文件夾:用于存放之后打包的文件
  • src文件夾:用于存放我們寫的源文件
  • main.js:項目的入口文件。具體內容查看下面詳情。
  • mathUtils.js:定義了一些數學工具函數,可以在其他地方引用,并且使用。具體內容查看下面的詳情。
  • index.html:瀏覽器打開展示的首頁html
  • package.json:通過npm init生成的,npm包管理的文件(暫時沒有用上,后面才會用上)
  • mathUtils.js文件中的代碼:

    main.js文件中的代碼:

    3.2 js文件的打包

    現在的js文件中使用了模塊化的方式進行開發,他們可以直接使用嗎?
    不可以。
    因為如果直接在index.html引入這兩個js文件,瀏覽器并不識別其中的模塊化代碼。
    另外,在真實項目中當有許多這樣的js文件時,我們一個個引用非常麻煩,并且后期非常不方便對它們進行管理。

    我們應該怎么做呢?

    • 使用webpack工具,對多個js文件進行打包。
    • 我們知道,webpack就是一個模塊化的打包工具,所以它支持我們代碼中寫模塊化,可以對模塊化的代碼進行處理。(如何處理的,待會兒在原理中,我會講解)
    • 另外,如果在處理完所有模塊之間的關系后,將多個js打包到一個js文件中,引入時就變得非常方便了。

    OK,如何打包呢?
    使用webpack的指令即可

    注意:如果webpack是4.0.x版本以上,使用webpack ./src/main.js -o ./dist/bundle.js --mode development

    3.3 使用打包后的文件

    打包后會在dist文件下,生成一個bundle.js文件

    文件內容有些復雜,這里暫時先不看,后續再進行分析。
    bundle.js文件,是webpack處理了項目直接文件依賴后生成的一個js文件,我們只需要將這個js文件在index.html中引入即可

    四、webpack的配置

    4.1 入口和出口

    我們考慮一下,如果每次使用webpack的命令都需要寫上入口和出口作為參數,就非常麻煩,有沒有一種方法可以將這兩個參數寫到配置中,在運行時,直接讀取呢?
    當然可以,就是創建一個webpack.config.js文件

    4.2 局部安裝webpack

    目前,我們使用的webpack是全局的webpack,如果我們想使用局部來打包呢?

    • 因為一個項目往往依賴特定的webpack版本,全局的版本可能很這個項目的webpack版本不一致,導出打包出現問題。
    • 所以通常一個項目,都有自己局部的webpack。
  • 第一步,項目中需要安裝自己局部的webpack
    這里我們讓局部安裝webpack3.6.0
    Vue CLI3中已經升級到webpack4,但是它將配置文件隱藏了起來,所以查看起來不是很方便。

    第二步,通過.\node_modules\.bin\webpack啟動webpack打包
  • 4.3 package.json中定義啟動

    但是,每次執行都敲這么一長串有沒有覺得不方便呢?
    OK,我們可以在package.json的scripts中定義自己的執行腳本。

    package.json中的scripts的腳本在執行時,會按照一定的順序尋找命令對應的位置。

    • 首先,會尋找本地的node_modules/.bin路徑中對應的命令。
    • 如果沒有找到,會去全局的環境變量中尋找。

    如何執行我們的build指令呢?

    五、loader的使用

    5.1 什么是loader?

    loader是webpack中一個非常核心的概念。

    webpack用來做什么呢?

    • 在我們之前的實例中,我們主要是用webpack來處理我們寫的js代碼,并且webpack會自動處理js之間相關的依賴。
    • 但是,在開發中我們不僅僅有基本的js代碼處理,我們也需要加載css、圖片,也包括一些高級的將ES6轉成ES5代碼,將TypeScript轉成ES5代碼,將scss、less轉成css,將.jsx、.vue文件轉成js文件等等。
    • 對于webpack本身的能力來說,對于這些轉化是不支持的。

    那怎么辦呢?給webpack擴展對應的loader就可以啦。
    loader使用過程:

  • 步驟一:通過npm安裝需要使用的loader
  • 步驟二:在webpack.config.js中的modules關鍵字下進行配置
  • 大部分loader我們都可以在webpack的官網中找到,并且學習對應的用法。

    5.2 css文件處理 - 準備工作

    項目開發過程中,我們必然需要添加很多的樣式,而樣式我們往往寫到一個單獨的文件中。
    在src目錄中,創建一個css文件,其中創建一個normal.css文件。
    我們也可以重新組織文件的目錄結構,將零散的js文件放在一個js文件夾中。

    normal.css中的代碼非常簡單,就是將body設置為red:

    但是,這個時候normal.css中的樣式會生效嗎?

    • 當然不會,因為我們壓根就沒有引用它。
    • webpack也不可能找到它,因為我們只有一個入口,webpack會從入口開始查找其他依賴的文件。

    在入口文件中引用:

    重新打包,會出現如下錯誤:

    這個錯誤告訴我們:加載normal.css文件必須有對應的loader。

    5.3 css文件處理 – css-loader

    在webpack的官方中,我們可以找到如下關于樣式的loader使用方法:

    按照官方配置webpack.config.js文件
    注意:配置中有一個style-loader,我們并不知道它是什么,所以可以暫時不進行配置。

    重新打包項目:
    但是,運行index.html,你會發現樣式并沒有生效。
    原因是css-loader只負責加載css文件,但是并不負責將css具體樣式嵌入到文檔中。
    這個時候,我們還需要一個style-loader幫助我們處理。

    5.4 css文件處理 – style-loader

    我們來安裝style-loader

    注意:style-loader需要放在css-loader的前面。
    疑惑:
    不對吧?按照我們的邏輯,在處理css文件過程中,應該是css-loader先加載css文件,再由style-loader來進行進一步的處理,為什么會將style-loader放在前面呢?

    答案:
    這次因為webpack在讀取使用的loader的過程中,是按照從右向左的順序讀取的。

    在瀏覽器中打開index.html頁面:

    5.5 less文件處理 – 準備工作

    如果我們希望在項目中使用less、scss、stylus來寫樣式,webpack是否可以幫助我們處理呢?
    我們這里以less為例,其他也是一樣的。
    我們還是先創建一個less文件,依然放在css文件夾中


    出現了報錯信息,提示我們需要安裝less-loader

    5.6 less文件處理 – less-loader

    繼續在官方中查找,我們會找到less-loader相關的使用說明

    首先,還是需要安裝對應的loader
    注意:我們這里還安裝了less,因為webpack會使用less對less文件進行編譯

    其次,修改對應的配置文件
    添加一個rules選項,用于處理.less文件

    執行npm run build命令,啟動webpack重新打包項目:

    注意:這里如果運行失敗了,檢查下less-loader的版本,版本過高可能就會失敗!

    在main.js文件中加入一行代碼:

    再次執行npm run build命令,啟動webpack重新打包項目:

    在瀏覽器中打開index.html文件:

    5.7 圖片文件處理 – 資源準備階段

    • 首先,我們在項目中加入兩張圖片:
      一張較小的圖片test01.jpg(小于8kb),一張較大的圖片test02.jpeg(大于8kb)
      待會兒我們會針對這兩張圖片進行不同的處理
    • 我們先考慮在css樣式中引用圖片的情況,所以我更改了normal.css中的樣式:

    如果我們現在直接打包,執行npm run build命令,會出現如下報錯信息:

    5.8 圖片文件處理 – url-loader

    訪問官方文檔:

    圖片處理,我們使用url-loader來處理,依然先安裝url-loader

    修改webpack.config.js配置文件:

    再次執行npm run build命令,啟動webpack重新打包項目:

    注意:
    此處需要注意url-loader的版本,版本太高可能會出現雖然運行沒有報錯,但是index.html頁面中無法顯示圖片,版本號如下所示,修改完之后,執行npm install重新安裝,再執行npm run build命令重新打包

    再次打包,運行index.html,就會發現我們的背景圖片選出了出來。
    而仔細觀察,你會發現背景圖是通過base64顯示出來的
    OK,這也是limit屬性的作用,當圖片小于29kb時,對圖片進行base64編碼


    那么問題來了,如果大于29kb呢?我們將background的圖片改成beijing.png
    這次因為大于29kb的圖片,會通過file-loader進行處理,但是我們的項目中并沒有file-loader

    5.9 圖片文件處理 – file-loader

    執行npm run builde出現如下報錯提示信息:


    所以,我們需要安裝file-loader,執行npm install file-loader --save-dev命令,安裝file-loader:


    執行npm run build命令,就會發現dist文件夾下多了一個圖片文件:

    用瀏覽器打開index.html文件發現,背景圖片仍然無法正常顯示:

    • 但是,我們發現圖片并沒有顯示出來,這是因為圖片使用的路徑不正確
    • 默認情況下,webpack會將生成的路徑直接返回給使用者
    • 但是,我們整個程序是打包在dist文件夾下的,所以這里我們需要在路徑下再添加一個dist/

    當把background屬性的url中的路徑前面加上./dist/之后,發現背景圖片可以正常顯示了,說明背景圖片一開始之所以無法顯示,是路徑錯了

    解決方案如下:
    在webpack.config.js文件中添加publicPath:

    然后重新執行npm run build命令,再次打開index.html頁面,背景圖片就能正常顯示了!

    5.10 圖片文件處理 – 修改文件名稱

    我們發現webpack自動幫助我們生成一個非常長的名字

    • 這是一個32位hash值,目的是防止名字重復
    • 但是,真實開發中,我們可能對打包的圖片名字有一定的要求
    • 比如,將所有的圖片放在一個文件夾中,跟上圖片原來的名稱,同時也要防止重復

    我們發現webpack自動幫助我們生成一個非常長的名字

    • 這是一個32位hash值,目的是防止名字重復
    • 但是,真實開發中,我們可能對打包的圖片名字有一定的要求
    • 比如,將所有的圖片放在一個文件夾中,跟上圖片原來的名稱,同時也要防止重復

    所以,我們可以在options中添加上如下選項:

    • img:文件要打包到的文件夾
    • name:獲取圖片原來的名字,放在該位置
    • hash:8:為了防止圖片名稱沖突,依然使用hash,但是我們只保留8位
    • ext:使用圖片原來的擴展名


    5.11 ES6語法處理

    如果你仔細閱讀webpack打包的js文件,發現寫的ES6語法并沒有轉成ES5,那么就意味著可能一些對ES6還不支持的瀏覽器沒有辦法很好的運行我們的代碼。

    • 在前面我們說過,如果希望將ES6的語法轉成ES5,那么就需要使用babel。
    • 而在webpack中,我們直接使用babel對應的loader就可以了。
    npm install --save-dev babel-loader@7 babel-core babel-preset-es2015

    配置webpack.config.js文件:

    重新打包,查看bundle.js文件,發現其中的內容變成了ES5的語法

    完整的package.json:

    {"name": "meetwebpack","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","build": "webpack"},"author": "","license": "ISC","devDependencies": {"babel-core": "^6.26.3","babel-loader": "^7.1.5","babel-preset-es2015": "^6.24.1","css-loader": "^2.0.2","file-loader": "^3.0.1","less": "^4.1.0","less-loader": "^4.1.0","style-loader": "^0.23.1","url-loader": "^1.1.2","webpack": "^3.6.0"} }

    完整的webpack.config.js文件:

    const path = require('path')module.exports = {entry: './src/main.js',output: {path: path.resolve(__dirname, 'dist'),filename: 'bundle.js',publicPath: 'dist/'},module: {rules: [{test: /\.css$/i,// css-loader只負責將css文件進行加載// style-loader負責將樣式添加到DOM中// 使用多個loader時,webpack時從右向左讀取use: ["style-loader", "css-loader"],},{test: /\.less$/i,use: [{loader: "style-loader"},{loader: "css-loader"},{loader: "less-loader"},]},{test: /\.(png|jpg|gif|jpeg)$/i,use: [{loader: 'url-loader',options: {// 當加載的圖片,小于limit時,會將圖片編譯成base64字符串形式// 當加載的圖片,大于limit時,需要使用file-loader模塊進行加載limit: 28000,name: 'img/[name].[hash:8].[ext]'},},],},{test: /\.m?js$/,// exclude:排除// include:包含exclude: /(node_modules|bower_components)/,use: {loader: 'babel-loader',options: {presets: ['es2015']}}}]} }

    六、webpack中配置Vue

    6.1 引入vue.js

    后續項目中,我們會使用Vuejs進行開發,而且會以特殊的文件來組織vue的組件。
    所以,下面我們來學習一下如何在我們的webpack環境中集成Vuejs

    現在,我們希望在項目中使用Vuejs,那么必然需要對其有依賴,所以需要先進行安裝
    注:因為我們后續是在實際項目中也會使用vue的,所以并不是開發時依賴


    那么,接下來就可以按照我們之前學習的方式來使用Vue了


    修改完成后,重新打包,運行程序:

    • 打包過程沒有任何錯誤(因為只是多打包了一個vue的js文件而已)
    • 但是運行程序,沒有出現想要的效果,而且瀏覽器中有報錯


    這個錯誤說的是我們使用的是runtime-only版本的Vue,什么意思呢?
    這里我只說解決方案:Vue不同版本構建,后續我具體講解runtime-only和runtime-compiler的區別。

    所以我們修改webpack的配置,添加如下內容即可:

    webpack.config.js文件:

    const path = require('path')module.exports = {entry: './src/main.js',output: {path: path.resolve(__dirname, 'dist'),filename: 'bundle.js',publicPath: 'dist/'},module: {rules: [{test: /\.css$/i,// css-loader只負責將css文件進行加載// style-loader負責將樣式添加到DOM中// 使用多個loader時,webpack時從右向左讀取use: ["style-loader", "css-loader"],},{test: /\.less$/i,use: [{loader: "style-loader"},{loader: "css-loader"},{loader: "less-loader"},]},{test: /\.(png|jpg|gif|jpeg)$/i,use: [{loader: 'url-loader',options: {// 當加載的圖片,小于limit時,會將圖片編譯成base64字符串形式// 當加載的圖片,大于limit時,需要使用file-loader模塊進行加載limit: 28000,name: 'img/[name].[hash:8].[ext]'},},],},{test: /\.m?js$/,// exclude:排除// include:包含exclude: /(node_modules|bower_components)/,use: {loader: 'babel-loader',options: {presets: ['es2015']}}}]},resolve: {// alias:別名alias: {'vue$': 'vue/dist/vue.esm.js'}} }


    正常運行之后,我們來考慮另外一個問題:

    • 如果我們希望將data中的數據顯示在界面中,就必須是修改index.html
    • 如果我們后面自定義了組件,也必須修改index.html來使用組件
    • 但是html模板在之后的開發中,我并不希望手動的來頻繁修改,是否可以做到呢?

    6.2 el和template區別

    定義template屬性:

    • 在前面的Vue實例中,我們定義了el屬性,用于和index.html中的#app進行綁定,讓Vue實例之后可以管理它其中的內容
    • 這里,我們可以將div元素中的{{message}}內容刪掉,只保留一個基本的id為div的元素
    • 但是如果我依然希望在其中顯示{{message}}的內容,應該怎么處理呢?
      我們可以再定義一個template屬性,代碼如下:

    重新打包,運行程序,顯示一樣的結果和HTML代碼結構:

    那么,el和template模板的關系是什么呢?

    • 在我們之前的學習中,我們知道el用于指定Vue要管理的DOM,可以幫助解析其中的指令、事件監聽等等。
    • 而如果Vue實例中同時指定了template,那么template模板的內容會替換掉掛載的對應el的模板。

    這樣做有什么好處呢?
    這樣做之后我們就不需要在以后的開發中再次操作index.html,只需要在template中寫入對應的標簽即可

    但是,書寫template模塊非常麻煩怎么辦呢?

    • 沒有關系,稍后我們會將template模板中的內容進行抽離。
    • 會分成三部分書寫:template、script、style,結構變得非常清晰。

    6.3 Vue組件化開發引入

    在學習組件化開發的時候,我說過以后的Vue開發過程中,我們都會采用組件化開發的思想。
    那么,在當前項目中,如果我也想采用組件化的形式進行開發,應該怎么做呢?

    查看下面的代碼:
    當然,我們也可以將下面的代碼抽取到一個js文件中,并且導出。

    6.4 .vue文件封裝處理

    但是一個組件以一個js對象的形式進行組織和使用的時候是非常不方便的

    • 一方面編寫template模塊非常的麻煩
    • 另外一方面如果有樣式的話,我們寫在哪里比較合適呢?

    現在,我們以一種全新的方式來組織一個vue的組件



    但是,這個時候這個文件可以被正確的加載嗎?

    • 必然不可以,這種特殊的文件以及特殊的格式,必須有人幫助我們處理。
    • 誰來處理呢?vue-loader以及vue-template-compiler。

      參考vue官網進行安裝配置


    安裝vue-loader和vue-template-compiler

    npm install vue-loader vue-template-compiler --save-dev


    修改webpack.config.js的配置文件:

    執行 npm run build 命令,又出現了報錯信息:


    告訴我們要安裝一個插件,這是vue-router版本是15以上引起的
    需要再額外添加如下配置:


    執行 npm run build命令,運行成功:


    七、plugin的使用

    7.1 認識plugin

    plugin是什么?
    plugin是插件的意思,通常是用于對某個現有的架構進行擴展。
    webpack中的插件,就是對webpack現有功能的各種擴展,比如打包優化,文件壓縮等等。

    loader和plugin區別

    • loader主要用于轉換某些類型的模塊,它是一個轉換器。
    • plugin是插件,它是對webpack本身的擴展,是一個擴展器。

    plugin的使用過程:

  • 步驟一:通過npm安裝需要使用的plugins(某些webpack已經內置的插件不需要安裝)
  • 步驟二:在webpack.config.js中的plugins中配置插件。
  • 下面,我們就來看看可以通過哪些插件對現有的webpack打包過程進行擴容,讓我們的webpack變得更加好用。

    7.2 BannerPlugin:為打包的文件添加版權聲明

    我們先來使用一個最簡單的插件,為打包的文件添加版權聲明
    該插件名字叫BannerPlugin,屬于webpack自帶的插件。

    • 按照下面的方式來修改webpack.config.js的文件:

      重新打包程序:查看bundle.js文件的頭部,看到如下信息

    7.3 HtmlWebpackPlugin:打包html的plugin

    目前,我們的index.html文件是存放在項目的根目錄下的。
    我們知道,在真實發布項目時,發布的是dist文件夾中的內容,但是dist文件夾中如果沒有index.html文件,那么打包的js等文件也就沒有意義了。

    所以,我們需要將index.html文件打包到dist文件夾中,這個時候就可以使用HtmlWebpackPlugin插件

    HtmlWebpackPlugin插件可以為我們做這些事情:

    • 自動生成一個index.html文件(可以指定模板來生成)
    • 將打包的js文件,自動通過script標簽插入到body中

    安裝HtmlWebpackPlugin插件

    npm install html-webpack-plugin --save-dev

    使用插件,修改webpack.config.js文件中plugins部分的內容如下:


    注意:
    這里的template表示根據什么模板來生成index.html
    另外,我們需要刪除之前在output中添加的publicPath屬性
    否則插入的script標簽中的src可能會有問題

    7.4 uglifyjs-webpack-plugin:js壓縮的Plugin

    在項目發布之前,我們必然需要對js等文件進行壓縮處理 這里,我們就對打包的js文件進行壓縮

    我們使用一個第三方的插件uglifyjs-webpack-plugin,并且版本號指定1.1.1,和CLI2保持一致

    npm install uglifyjs-webpack-plugin@1.1.1 --save-dev

    修改webpack.config.js文件,使用插件:

    查看打包后的bunlde.js文件,是已經被壓縮過了。

    八、搭建本地服務器

    webpack提供了一個可選的本地開發服務器,這個本地服務器基于node.js搭建,內部使用express框架,可以實現我們想要的讓瀏覽器自動刷新顯示我們修改后的結果。

    不過它是一個單獨的模塊,在webpack中使用之前需要先安裝它

    npm install --save-dev webpack-dev-server@2.9.1

    devserver也是作為webpack中的一個選項,選項本身可以設置如下屬性:

    • contentBase:為哪一個文件夾提供本地服務,默認是根文件夾,我們這里要填寫./dist
    • port:端口號
    • inline:頁面實時刷新
    • historyApiFallback:在SPA頁面中,依賴HTML5的history模式

    webpack.config.js文件配置修改如下:

    執行node_modules\.bin\webpack-dev-server命令,啟動服務器

    瀏覽器中輸入http://localhost:8080/打開index.html頁面:


    或者在package.json文件中配置如下代碼:

    執行npm run dev命令,啟動本地服務器:


    我們可以再配置另外一個scripts:
    --open參數表示直接打開瀏覽器

    九、webpack配置的分離

    原因:有些配置針對開發環境,有些配置針對生產環境,所以分開配置

  • 執行命令 npm install webpack-merge --save-dev,安裝webpack-merge插件
  • 建立build文件夾,分別建立 base.config.js prod.config.js dev.config.js
  • 在base.config.js里配置共公部分
  • const path = require('path') const webpack = require('webpack') const HtmlWebpackPlugin = require('html-webpack-plugin') const uglifyJsPlugin = require('uglifyjs-webpack-plugin') // const {VueLoaderPlugin} = require("vue-loader") const VueLoaderPlugin = require('vue-loader/lib/plugin') module.exports = {entry: './src/main.js',output: {path: path.resolve(__dirname, '../dist'),filename: 'bundle.js',// publicPath: 'dist/'},module: {rules: [{test: /\.css$/i,// css-loader只負責將css文件進行加載// style-loader負責將樣式添加到DOM中// 使用多個loader時,webpack時從右向左讀取use: ["style-loader", "css-loader"],},{test: /\.less$/i,use: [{loader: "style-loader"},{loader: "css-loader"},{loader: "less-loader"},]},{test: /\.(png|jpg|gif|jpeg)$/i,use: [{loader: 'url-loader',options: {// 當加載的圖片,小于limit時,會將圖片編譯成base64字符串形式// 當加載的圖片,大于limit時,需要使用file-loader模塊進行加載limit: 28000,name: 'img/[name].[hash:8].[ext]'},},],},{test: /\.m?js$/,// exclude:排除// include:包含exclude: /(node_modules|bower_components)/,use: {loader: 'babel-loader',options: {presets: ['es2015']}}},{test: /\.vue$/,loader: 'vue-loader'},]},resolve: {// import導入時,可以省略的后綴名extensions: ['.js','.css','.vue'],// alias:別名alias: {'vue$': 'vue/dist/vue.esm.js'}},plugins: [// 請確保引入這個插件來施展魔法new VueLoaderPlugin(),new webpack.BannerPlugin('最終版權歸zep所有'),new HtmlWebpackPlugin({template: 'index.html'}),// new uglifyJsPlugin()],// devServer: {// contentBase: './dist',// // 是否實時監聽// inline: true// } }
  • 在prod.config.js里配置生產環境
  • const uglifyJsPlugin = require('uglifyjs-webpack-plugin') const webpackMerge = require('webpack-merge') const baseConfig = require('./base.config')module.exports = webpackMerge(baseConfig,{plugins: [new uglifyJsPlugin()]} )
  • 在dev.config.js里配置開發環境
  • const webpackMerge = require('webpack-merge') const baseConfig = require('./base.config')module.exports = webpackMerge(baseConfig,{devServer: {contentBase: './dist',// 是否實時監聽inline: true} })
  • 在package.json里指定 scripts 里 build 和 dev 所需要找的配置環境路徑

    package.json文件:
  • {"name": "meetwebpack","version": "1.0.0","description": "","main": "index.js","scripts": {"test": "echo \"Error: no test specified\" && exit 1","build": "webpack --config ./build/prod.config.js","dev": "webpack-dev-server --open --config ./build/dev.config.js"},"author": "","license": "ISC","devDependencies": {"babel-core": "^6.26.3","babel-loader": "^7.1.5","babel-preset-es2015": "^6.24.1","css-loader": "^2.0.2","file-loader": "^3.0.1","html-webpack-plugin": "^3.2.0","less": "^4.1.0","less-loader": "^4.1.0","style-loader": "^0.23.1","uglifyjs-webpack-plugin": "^1.1.1","url-loader": "^1.1.2","vue-loader": "^15.7.0","vue-template-compiler": "^2.5.21","webpack": "^3.6.0","webpack-dev-server": "^2.9.1","webpack-merge": "^4.1.5"},"dependencies": {"vue": "^2.5.21"} }
  • 執行npm run build 命令,在瀏覽器中打開index.html,可以正常顯示:
  • 總結

    以上是生活随笔為你收集整理的六、Webpack详解学习笔记——webpack的安装、起步、配置、loader的使用、webpack中配置Vue、plugin的使用、搭建本地服务器、webpack配置的分离的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    国产亚洲精品久久久久久电影 | 亚洲精品国偷拍自产在线观看 | 黄色大片av| 又黄又刺激的网站 | 国产麻豆精品95视频 | 日韩中文字幕免费看 | 91麻豆精品91久久久久同性 | 一区二区三区免费在线播放 | 国产欧美日韩精品一区二区免费 | 高清国产一区 | 激情网站网址 | 久久国产精品免费一区 | 69精品视频在线观看 | 91最新地址永久入口 | 在线观看av国产 | 欧美国产大片 | 欧美一区二区在线免费观看 | 国产精品一区在线 | 久久激情视频 久久 | 免费黄色av片 | 精品不卡av | 日韩在线视 | 国产精品久久久久久久久软件 | 亚洲欧美日韩国产一区二区 | 就要色综合 | 国产成人福利在线观看 | 中文字幕日韩一区二区三区不卡 | 91伊人久久大香线蕉蜜芽人口 | 亚洲精品玖玖玖av在线看 | 伊人五月天婷婷 | 国产精品女教师 | 国产v亚洲v | 毛片美女网站 | 久精品视频在线观看 | 亚洲精品九九 | 97视频网址 | 亚州精品天堂中文字幕 | 91片网| 午夜精品一区二区三区四区 | 色www. | 亚洲精选视频在线 | 午夜精品久久久久99热app | 午夜91视频 | 99在线观看免费视频精品观看 | 欧美精品在线观看免费 | 国产精品久久久久久久久岛 | 国产在线一区二区 | 热re99久久精品国产99热 | 97久久精品午夜一区二区 | 亚洲永久精品国产 | 日本中文在线 | 久久国产亚洲视频 | 久久国产露脸精品国产 | 午夜91视频 | 国产中的精品av小宝探花 | av看片在线观看 | 99草在线视频 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 国产69久久精品成人看 | 国产精品一区二区久久久 | 欧美日韩高清国产 | 国内精品久久久久久久久久久久 | 超碰在线人人艹 | 国产精品一区二区av麻豆 | 国产女v资源在线观看 | 成人国产亚洲 | 网站你懂的 | 亚州欧美视频 | 99久久久国产免费 | 视频在线一区二区三区 | 国产精品国产三级国产 | 国产精品久久久久久久午夜片 | 国产精品久99 | 最近最新中文字幕视频 | 人人澡人人澡人人 | 亚洲精品国产精品国自产在线 | 久久精品综合一区 | 久久久免费国产 | 99热99热| 成人性生交大片免费看中文网站 | 激情综合网五月婷婷 | 国产录像在线观看 | 五月婷婷在线观看视频 | 亚洲欧美日韩精品一区二区 | 亚洲激情在线观看 | 在线观看亚洲国产精品 | 爱爱一区 | 久久久免费在线观看 | 日本高清dvd| 最近更新好看的中文字幕 | 日韩午夜大片 | 国产精品porn | 激情网五月天 | 婷色在线| 国产精品6 | 中文字幕一区二区三区乱码在线 | 免费黄色av | 亚洲理论在线观看 | 久久精彩免费视频 | 69人人| 中文字幕第一页av | 亚洲精品小视频 | 中文字幕免费不卡视频 | 在线观看涩涩 | 99re热精品视频 | 日日日视频 | 99国产成+人+综合+亚洲 欧美 | 久久激情小视频 | 美女福利视频网 | 91在线免费观看网站 | 99久久www | 久精品视频在线 | 人人cao| 日韩在线视频网址 | 综合久久网 | 国产精品日韩在线播放 | av中文字幕在线播放 | 免费h视频 | 天天综合网久久 | 日韩四虎| 亚洲精品在 | 国产视频1区2区3区 久久夜视频 | 国产精品乱码一区二区视频 | 天天操夜夜操夜夜操 | 97超碰人人澡人人爱学生 | 欧美精品在线视频 | 国产精品爽爽久久久久久蜜臀 | 六月色 | 久久亚洲影院 | 亚洲无吗天堂 | 天天色播 | 91九色蝌蚪国产 | 亚洲三级在线免费观看 | 国产一线二线三线性视频 | 狠狠操狠狠干2017 | 国色天香av | 一区二区三区四区精品 | 国产精品初高中精品久久 | 成av人电影 | 国产中文视 | www.久久久com | 成人中文字幕在线 | 91精品国产福利 | 九九av| 国产精品都在这里 | 欧美色图视频一区 | 成人h动漫在线看 | 99产精品成人啪免费网站 | 国产精品99久久久久久久久久久久 | 99热这里有精品 | 韩日视频在线 | 久久精品一区二区三区四区 | 亚洲一区二区视频在线播放 | 精品亚洲va在线va天堂资源站 | 亚洲精品中文字幕在线 | 亚洲精品综合在线 | 久久免费资源 | 国产理论在线 | 日韩成片 | 国产日产av | 中文字幕日本电影 | 免费 在线 中文 日本 | 日日操天天操夜夜操 | 大荫蒂欧美视频另类xxxx | 久久手机免费视频 | 欧美日韩国产色综合一二三四 | 日韩激情在线 | 国产护士在线 | 日韩午夜电影 | 国产剧情一区二区在线观看 | a级片久久久 | 91av视频在线免费观看 | 在线免费黄网站 | 日韩欧美电影在线 | 最新一区二区三区 | 欧美日韩高清一区二区 | 精品国产一区二区三区不卡 | 在线 精品 国产 | www看片网站 | 免费成人av电影 | 国产精品久久中文字幕 | 国产97av| 黄色app网站在线观看 | 狠狠干网址 | 99热999| 伊人午夜 | 一区中文字幕在线观看 | 一级a性色生活片久久毛片波多野 | 夜夜干夜夜| 97视频在线 | 色综合综合 | 国产精品精品国产色婷婷 | 草久在线 | 亚洲国产黄色 | 91成人精品一区在线播放69 | 麻豆影视在线播放 | av成人黄色 | 天天干,天天操 | 天天干,天天操,天天射 | 国产 在线 日韩 | 国产精品区二区三区日本 | 在线视频 一区二区 | 亚洲1区 在线 | 久久99中文字幕 | 久久久久久久18 | 婷婷久久久久 | 久久综合五月天婷婷伊人 | 精品1区2区 | 在线观看视频在线观看 | 国产在线91在线电影 | 手机av观看| 久久精品永久免费 | 欧美少妇的秘密 | 99视频 | 久久精品男人的天堂 | 精品字幕在线 | 亚洲免费在线观看视频 | aaawww| 久草视频在线观 | 国产乱码精品一区二区三区介绍 | 国产午夜精品久久久久久久久久 | 亚洲区色 | 婷婷在线精品视频 | 国产小视频在线免费观看视频 | 一区二区三区四区五区在线 | 国产精品夜夜夜一区二区三区尤 | 香蕉视频免费看 | 日韩69av | 久久精品国产v日韩v亚洲 | 91av播放| 国产成人精品国内自产拍免费看 | h视频在线看 | 亚洲最快最全在线视频 | 91香蕉视频黄色 | 综合网欧美| 免费观看全黄做爰大片国产 | 国产喷水在线 | 999久久久久久久久6666 | 日一日干一干 | 国产91免费在线 | 欧美色图亚洲图片 | 免费看国产视频 | 国产99中文字幕 | 午夜资源站 | 国产福利91精品 | 色wwww| 九草在线视频 | 免费合欢视频成人app | 在线观看av网 | 国产在线精 | 日日夜夜天天干 | 久久激情视频网 | 天天干天天摸 | 丝袜美腿亚洲 | 国产精品乱码在线 | 九九热免费精品视频 | 深爱激情开心 | 中文字幕av在线不卡 | 国产免费一区二区三区最新6 | 精品久久一区二区三区 | 黄色av电影一级片 | 日韩精品一区二区三区在线播放 | 欧美色黄 | 国产成人a v电影 | 超碰人人在线 | 免费三级av | 99人久久精品视频最新地址 | a级片久久 | 69精品视频 | 香蕉在线播放 | 亚洲成人资源在线 | 久久精品视频在线免费观看 | 中文字幕亚洲欧美日韩2019 | 日韩欧美精品在线 | 午夜精品视频免费在线观看 | 最新久久免费视频 | 在线成人观看 | 国产91免费看 | 欧美做受69| 欧美va天堂在线电影 | 激情导航| 五月婷婷中文字幕 | 国产性xxxx | 日韩精品一区不卡 | 国产精品成人一区 | 九九久久国产精品 | 天天舔天天搞 | 69av久久| 激情在线免费视频 | 在线观看国产区 | 九九九在线观看视频 | 日韩精品一区二区不卡 | 91亚洲国产成人 | www久久| 精品国产免费看 | 日韩免费在线观看视频 | 999久久久久 | 五月婷婷在线视频观看 | 日本在线精品视频 | 狠狠操91 | 91自拍视频在线 | 97福利| 色婷婷在线播放 | 国产精品一区二区久久久久 | 日韩欧美网址 | 丁香av| 高清国产午夜精品久久久久久 | 一区二区三区在线电影 | 天天插日日射 | 中文字幕免费高清av | 精品在线播放视频 | 欧美日产一区 | 午夜精品999 | 99精品视频在线观看免费 | 国产在线观看你懂的 | 高潮久久久久久 | 国产经典三级 | 97超碰超碰久久福利超碰 | 免费av小说 | 欧美日韩18 | 久久久999免费视频 日韩网站在线 | 97在线视频免费播放 | 成人精品影视 | 特级西西www44高清大胆图片 | 亚洲激情p | 五月婷婷丁香网 | 中文字幕免费成人 | 亚洲国产一二三 | 黄色午夜网站 | 成人午夜av电影 | 在线午夜 | 夜夜夜精品 | 欧美性超爽 | 一区二区三区在线免费播放 | 日韩二区三区 | 日韩一区二区三区免费电影 | 成人福利在线播放 | 欧美国产日韩一区二区 | 日韩视频三区 | 中文字幕a∨在线乱码免费看 | 国产午夜在线观看视频 | 一级a性色生活片久久毛片波多野 | 久久精品一| 在线观看视频在线观看 | 国产视频一区二区在线观看 | 亚洲另类在线视频 | 亚洲色影爱久久精品 | 亚洲九九 | 亚洲视频播放 | 91女人18片女毛片60分钟 | 欧美一级片免费观看 | 麻豆观看 | 99久久精品免费看国产四区 | 久久一区二区三区超碰国产精品 | 狠狠gao| 在线观看国产成人av片 | 黄色大片视频网站 | 免费黄色网址大全 | 久久久久夜色 | 亚洲第二色| 久热免费 | 在线观看黄色小视频 | 亚洲成人av电影在线 | 人人看黄色 | 天天久久综合 | 国产精品淫 | 亚洲国产精品久久久久 | 亚洲成人av在线 | 久章操 | 精品久久久久久久久久岛国gif | 久久国产精品久久久 | 成人在线视 | 欧美久久久久久久久久久久 | 国产福利电影网址 | 久久久综合香蕉尹人综合网 | 国产69精品久久久久久久久久 | 精品国产一区二区三区四区在线观看 | 久久精品79国产精品 | 日韩有码在线观看视频 | 久草在| 91av成人| 亚洲视频 视频在线 | 亚州视频在线 | 日韩欧美在线观看 | 开心激情网五月天 | 人人干人人模 | 人人爽人人片 | 一区二区三区国 | www.久久久.cum | 婷婷久久综合网 | 国产精品自产拍 | 丁香婷婷在线观看 | 久久久久国产精品一区二区 | 精品在线你懂的 | 丁香花在线视频观看免费 | 成人在线一区二区三区 | 日韩欧美专区 | 中文字幕在线播放av | 亚洲精品国产精品乱码在线观看 | 天天射天天做 | 日韩av不卡在线 | 久久激情视频 | 精品国产一区二区三区四区在线观看 | www.亚洲视频.com| 国产精品欧美久久久久无广告 | 欧美成人按摩 | 精品99在线视频 | 丁香网婷婷| 操操操干干干 | 六月色| 狠狠色丁香婷综合久久 | 有码中文字幕在线观看 | 久草在线视频在线 | 久日精品 | 中文一区二区三区在线观看 | 国产精品男女啪啪 | 亚洲 欧美 综合 在线 精品 | 久久 地址| 国产免费一区二区三区网站免费 | 最近字幕在线观看第一季 | 国产女人18毛片水真多18精品 | 天天操天天操天天操天天操 | 成人精品999 | 国产精品视频免费观看 | 日韩视频中文字幕在线观看 | 女人高潮特级毛片 | 免费观看av网站 | 色资源在线观看 | 亚洲伊人网在线观看 | 91亚洲精品久久久 | 精品久操 | 亚洲一级黄色大片 | 国产a精品 | 亚洲国产天堂av | 成人av资源网| 国内精品久久久精品电影院 | 99色网站| 免费日韩一区 | 亚洲免费精彩视频 | 国产看片免费 | 亚洲区精品视频 | 天天拍天天操 | 偷拍福利视频一区二区三区 | 免费大片av| wwwwww黄| 中文永久字幕 | 亚洲精品午夜国产va久久成人 | 天堂在线成人 | 成人wwwxxx视频 | 毛片视频网址 | 欧美大片www | 久久欧美在线电影 | 中文字幕在线视频免费播放 | 国产一区在线精品 | 91毛片视频 | 亚洲一区精品二人人爽久久 | 91在线播放综合 | 免费a现在观看 | 亚洲精品视频网址 | www.天天干.com | 欧美亚洲国产精品久久高清浪潮 | 免费视频91蜜桃 | 黄色av一级| www.com.黄 | 果冻av在线 | 精品视频一区在线观看 | 国产一级二级视频 | 亚洲免费不卡 | 欧美-第1页-屁屁影院 | 免费观看黄 | 99视频偷窥在线精品国自产拍 | 国产在线观看地址 | 久操久| 亚洲精品国偷自产在线91正片 | 黄在线免费观看 | 久久国产a | 91精品入口 | 国产精品久久中文字幕 | 九九热精品视频在线播放 | 色婷婷成人 | 成人影片在线播放 | 精品视频区 | 亚洲天天摸日日摸天天欢 | 81国产精品久久久久久久久久 | 色欧美成人精品a∨在线观看 | 国产又粗又长的视频 | 国产中文视频 | 午夜天天操 | www.婷婷色| 天天曰天天射 | 亚洲好视频 | 午夜精品久久久久久久99热影院 | 日韩av一区二区在线影视 | 国产做a爱一级久久 | 欧美性色19p | av网站在线免费观看 | 一区二区三区在线观看免费视频 | 在线观看免费一区 | www99久久 | 免费高清在线视频一区· | 国产精品一区二区在线播放 | 国产精品自产拍在线观看蜜 | 免费视频久久久 | 黄色三级免费片 | 亚洲欧美成aⅴ人在线观看 四虎在线观看 | 日本69hd| 国产精品毛片久久久久久久久久99999999 | 久久国产精品影片 | 久久婷婷激情 | 手机av永久免费 | 涩涩网站在线播放 | 一区二区三区在线观看免费 | 国产精品一区二区吃奶在线观看 | 国产又粗又猛又黄视频 | 99国产精品久久久久老师 | 久久九九网站 | 韩国精品福利一区二区三区 | 国产欧美日韩一区 | 国内精品国产三级国产aⅴ久 | 国产成人一区二区三区在线观看 | 在线国产欧美 | 欧美激情精品久久 | 日韩精品字幕 | 狠狠的日日 | 国产精品久久久久久久婷婷 | 91在线免费视频 | 亚洲狠狠婷婷 | 久久精品中文字幕少妇 | 久久久精品国产免费观看同学 | 中文字幕第一页在线播放 | 中文在线字幕观看电影 | 九九九九免费视频 | 1024在线看片 | 男女拍拍免费视频 | 在线观看黄网站 | 国产伦精品一区二区三区四区视频 | 色天天综合网 | 97色婷婷成人综合在线观看 | 欧美日韩视频免费看 | 激情五月婷婷综合 | 国产 欧美 日产久久 | 国产精品久久久久久久久久久不卡 | 在线观看岛国av | 黄色网址中文字幕 | 国内丰满少妇猛烈精品播放 | 久草免费福利在线观看 | 深爱激情亚洲 | 中文字幕 国产精品 | 欧美一级欧美一级 | 在线免费观看视频 | 成人午夜网 | 综合激情av | 最新av观看 | 99操视频| 操高跟美女 | 香蕉视频在线观看免费 | 亚洲黄色在线播放 | 在线天堂中文www视软件 | 亚洲伊人网在线观看 | 国产一区精品在线 | 日韩av在线高清 | 久热电影 | 亚洲女人av | 日日干av | 国产精品成久久久久 | 久久夜色精品国产欧美一区麻豆 | 成年人在线看片 | 亚洲天堂免费视频 | 久久精品国产免费看久久精品 | 99这里都是精品 | 中文字幕一区三区 | 中文字幕一区三区 | 国产黄色电影 | 麻豆免费精品视频 | 成人国产精品久久久春色 | 精品国产成人av在线免 | 亚洲最大成人免费网站 | 69视频在线 | 日日夜夜免费精品视频 | 又湿又紧又大又爽a视频国产 | 久久精品99久久久久久2456 | 欧美性生活免费 | 五月婷婷黄色网 | 日韩在线精品视频 | 狠狠干狠狠久久 | 天天夜夜狠狠操 | 久久这里只有精品首页 | 人人干干人人 | 天天天天天天天天操 | 国产三级精品三级在线观看 | 亚洲视频aaa | 91视频在线免费 | 日韩一区二区三区高清在线观看 | 亚洲黄色小说网址 | av三级在线免费观看 | 中文字幕一区二区三区四区久久 | 久久久激情网 | 欧美成人tv| 日日草视频| 婷婷久草 | 日韩一区二区三 | 六月丁香综合网 | 国产精品久久久久久久久久久久久 | 国产精品色在线 | 久久国产精品99久久久久久丝袜 | 天天色成人 | 天堂在线v | 日本xxxx.com| 亚洲精品啊啊啊 | 中文字幕丝袜一区二区 | 日韩av在线免费看 | 欧美先锋影音 | 国内三级在线 | av动图| 69国产成人综合久久精品欧美 | 韩日电影在线免费看 | 成人精品99 | 一本一道久久a久久精品蜜桃 | 久久久久欧美精品999 | 亚洲高清在线 | 欧美色图亚洲图片 | 偷拍精品一区二区三区 | 黄色在线视频网址 | 国产精品毛片一区二区 | 又紧又大又爽精品一区二区 | 色综合久久悠悠 | 久草免费在线观看视频 | 日本公妇色中文字幕 | 天天干天天操天天爱 | 亚洲天堂激情 | 天天操人人要 | 亚洲视频www | 国产成人三级在线观看 | 一区二区视频在线观看免费 | 国产精品久久久久久爽爽爽 | 狠狠干,狠狠操 | 在线色资源 | 亚洲国产免费看 | 国产黄色电影 | 91高清在线| 深爱五月激情网 | 久草在线免费资源 | 国产中文字幕亚洲 | 国产免费成人 | 伊人网av| 91av官网| 婷婷激情久久 | 午夜影视剧场 | 国产专区在线看 | 国产麻豆精品久久 | 欧美91av| 亚洲欧美国产精品久久久久 | 啪一啪在线 | 国产自偷自拍 | www.av中文字幕.com | 色91在线| 91麻豆操| 天天综合网在线 | 国产精品1区2区 | 伊人激情综合 | 成人久久久久久久久久 | 久草在线 | 99久久国产免费,99久久国产免费大片 | 亚洲国产精品资源 | 国产一区二区在线免费 | 人人射人人插 | 久草精品视频在线看网站免费 | 在线观看国产区 | 国产精品久久久久久久久毛片 | 国产又粗又猛又爽又黄的视频先 | 欧美日韩在线观看视频 | 在线视频日韩欧美 | 天天综合网~永久入口 | 五月天天天操 | 国产精品国产亚洲精品看不卡15 | 在线观看日韩av | 亚洲视屏 | 精品a在线| 国产精品视频一二三 | 在线免费观看视频一区二区三区 | 亚洲伊人成综合网 | 久精品视频在线观看 | 精品字幕在线 | 国外调教视频网站 | 麻豆一区二区 | av黄色影院 | 中文字幕视频观看 | 日本精品一区二区三区在线播放视频 | 亚洲欧洲精品视频 | 国产精品一区二区免费在线观看 | 久久精品三级 | 丁香激情婷婷 | 日日碰狠狠躁久久躁综合网 | 在线免费观看麻豆视频 | 爱av在线网| 在线你懂| 久久人91精品久久久久久不卡 | 99久久久成人国产精品 | 日日夜夜国产 | 亚洲精品久| 欧美极度另类性三渗透 | 亚洲综合欧美激情 | 亚洲三级国产 | 99在线免费观看视频 | 99午夜| 国产精品成人久久 | 久久人人爽人人爽人人片av软件 | 中文字幕高清在线 | www.夜夜操.com| 精品久久久久久久久久久久久久久久久久 | 99精品国产成人一区二区 | 99热99热| 亚洲 欧洲 国产 精品 | 西西444www高清大胆 | 狠狠的操你 | 久久毛片网站 | 国产黄色一级大片 | 亚洲欧美在线综合 | 色香蕉视频| 欧美日韩一区二区三区在线免费观看 | 日本高清久久久 | 91精品久久久久久久久久入口 | 五月开心婷婷网 | 国产精品久久久久免费 | 国产美腿白丝袜足在线av | 亚洲国产日韩欧美 | 人人干人人上 | 99热手机在线 | 国产一级二级在线观看 | 久久激情视频 久久 | 欧美另类老妇 | 久久视频国产精品免费视频在线 | 天天天干天天射天天天操 | av成人亚洲 | 丰满少妇在线观看资源站 | 欧美日韩一区二区在线观看 | 中文字幕人成乱码在线观看 | 成人av高清在线观看 | 久草久草视频 | 91最新国产 | 中文字幕精品久久 | 视频国产一区二区三区 | 五月综合| 在线成人一区二区 | 夜色在线资源 | 超碰在线94 | 在线日韩中文 | 99精品国产免费久久久久久下载 | 国产一级91 | 国产色中涩 | 国外调教视频网站 | 黄色官网在线观看 | 久久激情视频免费观看 | 香蕉精品视频在线观看 | 亚洲午夜久久久久 | 天堂v中文 | 免费福利片2019潦草影视午夜 | www在线免费观看 | 91九色视频| 国产手机视频精品 | 久久69av| 天天视频亚洲 | 日韩国产欧美在线播放 | 2018好看的中文在线观看 | 欧美a√大片 | 国产精品美女久久 | 久久九九网站 | 91中文视频 | 国产专区视频在线 | 九热在线| 最近中文字幕mv免费高清在线 | 五月婷婷播播 | 天天干,天天插 | 99免费在线视频观看 | 日韩电影一区二区三区在线观看 | 久久一区二区三区超碰国产精品 | www..com毛片 | 久久中文网 | 久久九九国产精品 | 美女黄频免费 | 欧美日韩中文字幕视频 | 亚洲一级影院 | 黄a在线| 精品999在线观看 | a久久久久 | 国产免费又粗又猛又爽 | 久久艹国产 | 91视频在线自拍 | 九九九免费视频 | 免费在线视频一区二区 | 久草在线视频网站 | 久久综合久久综合久久 | 在线观看成人国产 | 99视频国产在线 | 久久久国产在线视频 | 日韩在线视频观看免费 | 国产91勾搭技师精品 | 成年人在线 | 99久久精品视频免费 | 日本精品久久久久影院 | 色综合天天色综合 | 色婷婷六月天 | 视频99爱| 18性欧美xxxⅹ性满足 | 韩国av一区二区 | 美女视频黄免费网站 | 国产高清久久 | 久久久久久久久久久精 | 99这里只有| 黄色av影院 | 最新av在线免费观看 | 免费在线成人av | 天天操天天能 | 亚洲欧美视频在线观看 | 日本午夜在线亚洲.国产 | 国产91精品在线观看 | 日日麻批40分钟视频免费观看 | 在线蜜桃视频 | 日韩av片免费在线观看 | 国产不卡av在线播放 | 欧美大片在线观看一区 | 九月婷婷人人澡人人添人人爽 | 免费视频一区二区 | 亚洲区色 | 亚洲一区二区天堂 | 99久久精品午夜一区二区小说 | 免费观看丰满少妇做爰 | 亚洲综合视频在线播放 | 韩国av电影在线观看 | 81精品国产乱码久久久久久 | 免费在线观看av不卡 | 五月天激情综合 | 国产主播大尺度精品福利免费 | 免费看片黄色 | 免费观看的av | 久久精品1区2区 | 特级毛片在线免费观看 | 国产 欧美 日本 | 久久久精品国产免费观看一区二区 | 9色在线视频 | 中文字幕91| 2020天天干夜夜爽 | 久久99热这里只有精品 | 亚洲精品高清一区二区三区四区 | 欧美在线观看小视频 | 在线激情小视频 | 亚洲国产欧美在线人成大黄瓜 | 六月丁香婷 | 亚洲国产97在线精品一区 | 免费在线看v | 一区二区三区高清不卡 | 亚洲久草网 | 亚洲 欧美 另类人妖 | 五月色丁香 | 国产精品永久免费视频 | 日韩av中文字幕在线 | 国产精品国产三级国产不产一地 | 99国内精品 | 97碰碰视频 | 国产中文字幕91 | 国产精品18久久久久久久 | 美女视频黄免费 | 99成人精品 | 色婷婷久久久综合中文字幕 | 国产黄色精品在线 | 久久精品99精品国产香蕉 | 久久精品在线视频 | 日日夜夜精品 | 国产在线观看91 | 国产精品久久久久免费观看 | 国产麻豆精品传媒av国产下载 | 国产一区自拍视频 | 亚洲国产精品成人精品 | 国产亚洲精品久久网站 | 国产精品久久久久久高潮 | 国产手机在线播放 | 伊人天堂av| av免费在线看网站 | 久久久久久在线观看 | 人人插人人 | 啪啪肉肉污av国网站 | 国产精品久久久久久久久久久久午夜片 | 中文乱幕日产无线码1区 | 国产91勾搭技师精品 | 久久99日韩| 国产高清在线免费视频 | 久久国产电影 | 国产99亚洲 | 丁香在线 | 懂色av懂色av粉嫩av分享吧 | 国产 欧美 日产久久 | 国产成人一区二 | 狠狠狠狠狠干 | 黄色成人小视频 | 日日夜夜噜| 97精品国产97久久久久久春色 | 欧美精品黑人性xxxx | 国产在线精品国自产拍影院 | 色播五月激情综合网 | 成人av在线资源 | 成人黄性视频 | 精品超碰 | 国产色一区 | 日本中文字幕一二区观 | 国产福利一区二区三区在线观看 | 96在线| 免费高清在线观看电视网站 | 999久久国产 | 午夜免费电影院 | 97免费公开视频 | 亚洲国产成人精品在线 | 一级欧美黄| 成年人免费在线看 | 91看毛片 | 韩国av免费 | 国产一级二级在线观看 | 国产精品短视频 | 国产一区二区高清不卡 | 国产午夜精品免费一区二区三区视频 | 欧美91av| 国产不卡av在线 | 欧美一级在线看 | 中文字幕免费一区二区 | 一区二区三区久久 | 国产午夜三级一区二区三桃花影视 | 一区在线免费观看 | 91桃色免费观看 | 伊人狠狠干 | 免费观看性生交 | 亚洲做受高潮欧美裸体 | www久久国产| 超碰大片 | 久久国产三级 | 亚洲午夜久久久久久久久 | 日韩视频在线播放 | 欧美日韩一级久久久久久免费看 | 日韩欧美一区二区在线 | 最新真实国产在线视频 | 东方av免费在线观看 | 欧美性黑人 | 国产小视频在线播放 | 国产精品国产三级在线专区 | 日韩精品电影在线播放 | 国产 在线 高清 精品 | av免费网站观看 | 这里只有精品视频在线观看 | 在线看欧美 | 中文字幕婷婷 | 久久久免费电影 | 国产成人精品av在线观 | 国产精品毛片一区二区在线 | 午夜免费福利视频 | 四虎成人网 | 51久久夜色精品国产麻豆 | 久久观看免费视频 | 亚洲视频,欧洲视频 | av.com在线| 超碰人人超碰 | 国产剧情久久 | 一区二区三区电影大全 | 中文字幕在线中文 | 中文字幕av在线电影 | 亚洲激情 在线 | 91精品久久久久久久久久久久久 | 国产精品毛片久久 | 黄色一级在线免费观看 | 亚洲黄色一级电影 | 丁香电影小说免费视频观看 | 西西4444www大胆艺术 | 久久久久久久久久免费 | 天堂网一区二区三区 | 日韩一区二区三区免费视频 | 精品国产aⅴ一区二区三区 在线直播av | 毛片基地黄久久久久久天堂 | 91在线视频精品 | 亚洲视频一区二区三区在线观看 | 国产精品久久久久一区二区 | 91tv国产成人福利 | 青草视频在线 | 欧美日比视频 | 中文字幕在线观看资源 | 日韩av片在线 | 久久草精品 | 色播五月婷婷 | 久久不卡av | 狠狠操狠狠干天天操 | 国产精品久久久久久久久久不蜜月 | 国产精品亚州 | 首页av在线 | 中文字幕国产精品 | 色在线视频网 | 高清视频一区 | 欧美三级在线播放 | av手机版| 日韩影视精品 | 亚洲国产一区二区精品专区 | 国产精品电影一区二区 | www天天干|