webpack4.0入門指南(一)安裝和轉換es6語法

jilei786發表於2018-06-13

webpack 是一個現代 JavaScript 應用程式的靜態模組打包器(module bundler)。當 webpack 處理應用程式時,它會遞迴地構建一個依賴關係圖(dependency graph),其中包含應用程式需要的每個模組,然後將所有這些模組打包成一個或多個 bundle。 webpack v4.0.0 開始,可以不用引入一個配置檔案。

安裝

npm install -g webpack
npm install -g webpack-cli
複製程式碼

需要先全域性安裝你才可以使用webpack命令,然後再安裝到你的專案依賴。 如果你使用 webpack 4+ 版本,你還需要安裝 CLI。

新建專案

mkdir webpack-demo && cd webpack-demo  //建立並進入webpack-demo資料夾
npm init -y   // 初始化專案package.json檔案
npm install -D webpack webpack-cli  // 本地安裝 webpack和webpack-cli
複製程式碼

使用預設配置去構建

mkdir demo1 && cd demo1
touch index.html
mkdir src && cd src
touch index.js
複製程式碼

index.html

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  
  <!--  webpack會把src/index.js檔案打包到dist目錄mian.js -->
  <script src="./dist/main.js"></script>
</body>
</html>
複製程式碼

src/index.js

let a = 1;
alert(a);
複製程式碼

執行 webpack 命令。就可以看到檔案被打包到dist資料夾了。開啟index.html檔案就會彈出1。 webpack4.0可以不用寫配置檔案,然而大多數專案會需要很複雜的設定,需要你自己去配置。

使用配置檔案

cd .. // 返回到webpack-demo資料夾
touch webpack.config.js  // 建立配置檔案
touch index.html
mkdir demo2 && cd demo2  // 建立demo2資料夾
mkdir src && cd src
touch index.js
複製程式碼

webpack.config.js

const path = require('path');

module.exports = {
  entry: './src/index.js',  // 入口檔案
  output: {  // 出口檔案
    filename: 'bundle.js',   // 打包後命名為bundle.js
    path: path.resolve(__dirname, 'dist') // 輸出的路徑
  }
};
複製程式碼

在專案的demo2目錄執行webpack。如下圖就代表打包成功。開啟demo2下面的index.html 就可以彈出我的部落格地址。

webpack4.0入門指南(一)安裝和轉換es6語法

使用babel轉換es6語法 => es5

安裝babel

在webpack-demo路徑下執行命令

npm install --save-dev babel-loader babel-core babel-preset-env
複製程式碼

把demo2複製一份命名為demo3,在src目錄下再新建a.js。 src/a.js

export default lanpangzhi = "blog.langpz.com";
複製程式碼

src/index.js

import lanpz from "./a.js";
console.log(lanpz);
複製程式碼

webpack.config.js

const path = require('path');

module.exports = {
  entry: './src/index.js',  // 入口檔案
  output: {  // 出口檔案
    filename: 'bundle.js',   // 打包後命名為bundle.js
    path: path.resolve(__dirname, 'dist') // 輸出的路徑
  },
  module: {
    rules: [
      {
        test: /\.js$/, // 匹配所有.js結尾的檔案
        exclude: /node_modules/,  // 忽略node_modules資料夾
        use: {
          loader: 'babel-loader'  // 使用babel-loader轉義
        }
      }
    ]
  }
};
複製程式碼

新建 .babelrc 檔案

touch .babelrc
複製程式碼

.babelrc

{
  "presets": ["env"]
}
複製程式碼

執行webpack就可以看見打包成功了。

webpack4.0入門指南(一)安裝和轉換es6語法

babel-polyfill

由於 Babel 只轉換語法(如箭頭函式), 你可以使用 babel-polyfill 支援新的全域性變數,例如 Promise 、新的原生方法如 String.padStart (left-pad) 等。 在webpack-demo路徑下執行命令

npm install --save babel-polyfill  // 安裝babel-polyfill
複製程式碼

在 webpack.config.js 中,將 babel-polyfill 加到你的 entry 陣列中。

module.exports = {
  entry: ["babel-polyfill", "./src/index.js"]
};
複製程式碼

執行webpack命令,如下圖就成功了。

webpack4.0入門指南(一)安裝和轉換es6語法

demo倉庫地址

github.com/lanpangzhi/…

我的部落格和GitHub地址

github.com/lanpangzhi

blog.langpz.com

參考

www.babeljs.cn/ webpack.docschina.org/

相關文章