1. 程式人生 > >Webpack 構建工具手把手教你怎麽用

Webpack 構建工具手把手教你怎麽用

www. -- 生產 cti 技術分享 uil img concepts 全局

Webpack:構建工具?

介紹

  本質上,webpack 是一個現代 JavaScript 應用程序的靜態模塊打包器(module bundler)。當 webpack 處理應用程序時,它會遞歸地構建一個依賴關系圖(dependency graph),其中包含應用程序需 要的每個模塊,然後將所有這些模塊打包成一個或多個 bundle。?

  1.自帶模塊化(commonjs規範)?

  2.編譯:es6 -> es5 , jsx -> es5 , ts(typescript) -> js // 語法糖?

  3.gulp所做的事情,webpack都可以做到?

  4.自帶服務器,服務器也是基於Node(webpack-dev-server)?

  5.那些環境經常使用到webpack:react 、 vue?

  6.webpack版本:1.x 、2.x 、3.x 、4.x版本?

  7.中文文檔參考:

使用

1.安裝(在系統命令行(win+R,鍵入cmd在對應目錄下shift+右鍵打開power shell))

    npm install -g webpack

    npm install -g webpack-cli

2.創建項目,初始化package.json文件(在項目根目錄命令行執行)

    npm init

3.安裝項目依賴的webpack(在項目根目錄命令行安裝)

    npm install --save-dev webpack

    npm install --save-dev webpack-cli

4.項目根目錄創建兩個文件夾src和dist

    src:源碼文件

    dist:打包之後的文件

5.編寫代碼

    在src文件創建app.js

    代碼:document.write("Hello Webpack");

6.在項目根目錄創建配置文件webpack.config.js

    輸入代碼:

按 Ctrl+C 復制代碼 按 Ctrl+C 復制代碼

    項目根目錄命令行執行:webpack,會有警告加上mode模式就沒了(第8點)

    在dist下面創建index.html,引用bundle.js即可看到效果,需在body裏引用, 否則編寫模塊化代碼會報錯.

7.編寫模塊化代碼

    app.js:

     var hello = require("./hello.js");
        document.getElementsByTagName("body")    [0].appendChild(hello());


    hello.js:

     module.exports = function(){
            var divs = document.createElement("div");
            divs.textContent = "文本信息"; // innerHTMl
            return divs;
        }

    項目根目錄命令行執行:webpack

8.mode模式(在webpack.config.js文件中加)

    mode: ‘production‘

    mode: ‘development‘

    代碼:

技術分享圖片
        const path = require(‘path‘);
                module.exports = {
                        entry:"./src/app.js",
                        mode: ‘production‘,
                    output:{
                                 path: path.resolve(__dirname,‘dist‘),
                                 path: path.resolve(__dirname,‘dist‘),
                          }
                 }
技術分享圖片

9.快捷配置,在package.json文件中配置
 "scripts": {
        "build":"webpack",//build是生產模式先用webpack代替在第11點講
        "start":"webpack"//start是開發模式先用webpack代替在第11點講
    }

    項目根目錄命令行改變運行方案:

        npm run build

        npm start

10.錯誤調試信息

    擇一種 source map 格式來增強調試過程。不同的值會明顯影響到構建(build)和重新構建(rebuild)的速度。

    生成錯誤信息文件

    配置webpack.config.js文件

    添加devtool:"eval-source-map"

    devtool:

    eval

    source-map

    hidden-source-map

    inline-source-map

    eval-source-map

    cheap-source-map

    cheap-module-source-map

11.webpack服務器

    1.全局安裝(在系統命令行)

      npm install -g webpack-dev-server

    2.項目依賴安裝(在項目根目錄命令行)

      npm install -D webpack-dev-server

    3.運行webpack服務器

      在項目根目錄命令行輸入webpack-dev-server

      退出webpack服務器 ctrl+c

    4.快捷執行方案(打開package.json)

     "scripts": {
            "build": "webpack",
            "start": "webpack-dev-server"
        }

      在項目根目錄命令行輸入npm start 就可以快速運行webpack服務器,

      webpack服務器後要在瀏覽器輸入localhost:8080

    5.修改服務器配置(詳情看官網 文檔中配置裏的開發中)

    在webpack.config.js配置文件中配置:

    devServer:{

      contentBase: path.join(__dirname, "dist"),//把dist作為服務器的根路徑

      port: 8081//修改端口

    }

技術分享圖片
const path = require(‘path‘);
module.exports = {
    devtool:"eval-source-map",
    entry:"./src/app.js",
    mode: ‘production‘,
    output:{
        path: path.resolve(__dirname,‘dist‘),
        filename:"bundle.js"
    },
    devServer:{
        contentBase: path.join(__dirname, "dist"),
        host: "0.0.0.0",
        port: 8081
    }
}
技術分享圖片

    在項目根目錄命令行輸入npm start 運行

    命令行配置:在package.json文件中配置:

    "webpack-dev-server --progress"//添加進度條

    
     "scripts": {
        "build": "webpack",
        "start": "webpack-dev-server --progress"
      }

Webpack 構建工具手把手教你怎麽用