重構之路 webpack配置es6語法

2021-09-10 17:57:51 字數 1310 閱讀 3503

之前已經寫好了最簡單的乙個webpack配置,並且已經可以執行js了,但是,新時代的前端肯定要寫es6啊,但是我們在index.js裡寫上es6的語法時,比如:

//使用es6裡的set和擴充套件運算子來實現陣列去重

varset

=new

set([1

,2,2

,3,3

,4,4

,5,5

]);console.

log(

[...

set]);

//[1,2,3,4,5]

//順便寫乙個一行**實現陣列去重,這個也算個面試題了

[...

newset([

1,2,

2,3,

3,4,

4,5,

5])]

//[1,2,3,4,5]

這個時候打包執行**,在谷歌下可以正常執行,這是因為谷歌本身就支援這樣的語法,但是在ie下會報這樣的錯(萬惡的ie),所以我們要使用polyfill來轉化它。

預設情況下babel可以將箭頭函式,class等語法轉換為es5相容的形式,但是卻不能轉換map,set,promise等新的全域性物件,這時候就需要使用polyfill去模擬這些新特性

我們在控制台執行:

yarn add @babel/polyfill @babel/runtime //注意這裡不加-d

yarn add @babel/plugin-transform-runtime -d

然後我們在webpack.config.js裡配置:

}]

}

然後在index.js裡的頂部寫上:

import "@babel/polyfill" //新增這一行

var set=new set([1,2,2,3,3,4,4,5,5]);

console.log([...set]);

然後我們再去控制台裡執行webpack,我們發現打包後的體積突然變得這麼大?之前明明只有幾kb的。這是因為polyfill自己實現es6的相容語法,將很多很多的相容語法打包到一起了,導致包體積變大。

上面我們還新增了runtime外掛程式,這個外掛程式後期可以和@babel/preset-env實現按需載入,所以這裡先配置了。

(ps:我們在後面的章節會說如何去優化包體積的)

然後我們開啟index.html頁面,在ie下變成了下面這樣,我們就完成了配置es6的語法

重構之路 開始配置webpack

現在開始建立專案了,安裝node什麼的一大堆我就不說了,網上很多,我這裡使用的是node版本v10.15.0,yarn的版本是v1.12.3。首先在建立的目錄下面執行 yarn init y yarn add webpack webpack cli d 我這裡使用的版本是webpack4.29.0,...

重構之路 開始配置webpack

現在開始建立專案了,安裝node什麼的一大堆我就不說了,網上很多,我這裡使用的是node版本v10.15.0,yarn的版本是v1.12.3。首先在建立的目錄下面執行yarn init yyarn add webpack webpack cli d我這裡使用的版本是webpack4.29.0,然後在...

webpack學習之路之webpack核心概念

webpack相關文件 webpack官網 webpack中文官網 webpack github位址 webpack 版本差異及修復bug webpack 主要4個核心概念 1 entry entry是某一段 的入口,這段 入口會告訴webpack 裡面有哪些模組的依賴。entry也是打包的入口,告...