1. 程式人生 > >webpack傻瓜入門教程

webpack傻瓜入門教程

webpack安裝

  • 新建立專案資料夾,如app(資料夾名稱不要大寫)
  • 進入app資料夾,shif+滑鼠右鍵,在此處開啟命令視窗,npm init 並enter初始化生成config.json
    npm init
    生成的package.json如下:
    package.json

  • 安裝webpack

npm install webpack -g //全域性安裝
npm install webpack --save-dev //本地安裝,並寫入到config.json

本地安裝並寫入後,package.json新增了devDependencies配置;開啟package.json,將main的值改為“result.js”
這裡寫圖片描述

webpack打包

  • 新建index.html,並在其中引入主result.js
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>lidysun webpack入門教程</title>
</head>
<body>
  <script src="result.js"></script>
</body>
</html>
  • 新建entry.js入口檔案
document.write
('我來自entry.js檔案!');
  • 命令視窗webpack編譯:
webpack entry.js result.js

瀏覽器開啟index.html,重新整理可看到結果。
這裡寫圖片描述

webpack載入其它js模組

  • 新建other.js
module.exports = '<br>我來自other.js'
  • 修改entry.js
document.write('我來自entry.js檔案!');
document.write(require('./other.js'));
  • 重新編譯webpack entry.js result.js 並重新整理瀏覽器,可以看到other.js的內容也輸出了:
    這裡寫圖片描述

webpack載入css模組

  • 新建style.css
body{color:#ff6600;}
  • 本地安裝css-loader style-loader
npm install css-loader style-loader --save-dev

安裝完成後,重新開啟package.json,檢查依賴是否自動新增
這裡寫圖片描述

  • 修改entry.js
    注意:style-loader和css-loader的順序不能變,且後面的 ; 分號不能遺漏。
require("!style-loader!css-loader!./style.css");
document.write('我來自entry.js檔案!');
document.write(require('./other.js'));
  • 編譯 webpack entry.js result.js 並重新整理index.html可以看到樣式變化
    這裡寫圖片描述

webpack配置

  • 新建webpack.config.js
var webpack = require('webpack');
module.exports = {
  entry:'./entry.js',
  output:{
    path:__dirname,
    filename:'result.js',
  },
  module:{
    loaders:[
      {test:/\.css$/,loader:'style-loader!css-loader'}
    ]
  }
}

entry 輸入檔案,相當於設定webpack entry.js result.js 中的entry.js
output 輸出檔案,相當於設定webpack entry.js result.js 中的result.js
path 輸出檔案的位置,__dirname 表示當前目錄,可根據實際專案更改,如 ./js
loader 設定不同模組的編譯方式。
當webpack.config.js中沒有設定loaders {test:/\.css$/,loader:'style-loader!css-loader'} 時,並且entry.js引入css的格式為簡單的 require('./style.css'); 時,我們編譯命令必須加上引數webpack entry.js result.js --module-bind "css=style-loader!css-loader",但當我們設定了loaders後,引入css檔案也可以像js一樣簡單,編譯時就可以不用傳參,簡直爽爆了。

  • 配置完webpack.config.js後,可以對style.css修改,以示區分
body{color:black;}
  • 編譯
    因為設定好了webpack.config.js檔案,所以編譯時入口檔案entry.js、結果檔案result.js、css模組引數都統統省略,直接 webpack 編譯即可。編譯後重新整理index.html可見效果
    這裡寫圖片描述