Webpack4 快速入門

Webpack 4

?webpack 4有很多新的特性。

1. 不再必須有配置文件

2. 產(chǎn)品模式和開發(fā)模式 (production and development mode)

3. 覆寫默認的入口路徑/導出路徑

4. 使用Webpack 4 編譯ES6代碼

4.1. 使用配置文件來加載loader

4.2. 不使用配置文件來加載loader

5. HTML Webpack插件

6. 提取CSS到文件中

7. Webpack 開發(fā)服務器

8. 參考資料

1. 不再必須有配置文件

好消息:webpack 4 doesn’t need a configuration file. Webpack 4不再必須需要一個配置文件了松忍!

如果沒有配置文件,Webpack 4會默認.src/index.js為入口文件欲芹。

2. 產(chǎn)品模式和開發(fā)模式 (production and development mode)

webpack4 引入了產(chǎn)品模式和開發(fā)模式的概念。

只需要在打包命令中加入?yún)?shù),例如:

$ webpack --mode development

$ webpack --mode production

webpack就會以不同模式打包文件。

產(chǎn)品模式提供了開箱即用的一些優(yōu)化配置呛伴,包括minification, scope hoisting, tree-shaking以及更多。

3. 覆寫默認的入口路徑/導出路徑

直接上代碼:

"scripts": {"dev":"webpack --mode development ./foo/src/js/index.js --output ./foo/main.js","build":"webpack --mode production ./foo/src/js/index.js --output ./foo/main.js"}

4. 使用Webpack 4 編譯ES6代碼

4.1. 使用配置文件來加載loader

Webpack的loader之一babel-loader可以完成這個工作谒所。

使用babel-loader之前需要安裝一下依賴:

babel-core

babel-loader

babel-preset-env

npmibabel-core babel-loader babel-preset-env --save-dev

接下來通過新建一個新文件.babelrc來配置Babel热康。

在文件中輸入以下內(nèi)容:

{"presets": ["env"]}

4.2. 不使用配置文件來加載loader

"scripts": {"dev":"webpack --mode development --module-bind js=babel-loader","build":"webpack --mode production --module-bind js=babel-loader"}

--module-bind允許你在命令行中聲明要加載的loader

5. HTML Webpack插件

Webpack使用兩個額外組件來處理HTML:html-webpack-plugin 和 html-loader。

加載依賴項:

npm i html-webpack-plugin html-loader --save-dev

配置文件:

const HtmlWebPackPlugin = require("html-webpack-plugin");module.exports = {? module:{? ? rules:[? ? ? {? ? ? ? test:/.js$/,? ? ? ? exclude:/node_modules/,? ? ? ? use:{? ? ? ? ? loader:"babel-loader"}? ? ? },? ? ? {? ? ? ? test:/.html$/,? ? ? ? use:[? ? ? ? ? {? ? ? ? ? ? loader:"html-loader",? ? ? ? ? ? options:{ minimize: true }? ? ? ? ? }? ? ? ? ]? ? ? }? ? ]? },? plugins:[? ? new HtmlWebPackPlugin({? ? ? template:"./src/index.html",? ? ? filename:"./index.html"})? ]};

不用手動將JavaScript文件插入到HTML文件中劣领。打包后的文件將會被自動插入姐军。

6. 提取CSS到文件中

需要用到以下組件:

mini-css-extract-plugin

css-loader

安裝依賴:

npm i mini-css-extract-plugin css-loader --save-dev

配置文件:

const HtmlWebPackPlugin = require("html-webpack-plugin");const MiniCssExtractPlugin = require("mini-css-extract-plugin");module.exports = {? module:{? ? rules:[? ? ? {? ? ? ? test:/.js$/,? ? ? ? exclude:/node_modules/,? ? ? ? use:{? ? ? ? ? loader:"babel-loader"}? ? ? },? ? ? {? ? ? ? test:/.html$/,? ? ? ? use:[? ? ? ? ? {? ? ? ? ? ? loader:"html-loader",? ? ? ? ? ? options:{ minimize: true }? ? ? ? ? }? ? ? ? ]? ? ? },? ? ? {? ? ? ? test:/.css$/,? ? ? ? use:[MiniCssExtractPlugin.loader,"css-loader"]? ? ? }? ? ]? },? plugins:[? ? new HtmlWebPackPlugin({? ? ? template:"./src/index.html",? ? ? filename:"./index.html"}),? ? new MiniCssExtractPlugin({? ? ? filename:"[name].css",? ? ? chunkFilename:"[id].css"})? ]};

7. Webpack 開發(fā)服務器

在設置好webpack dev server之后。你的應用將在瀏覽器中自動啟動尖淘。

在每次修改文件后奕锌,瀏覽器窗口也會自動刷新。

安裝依賴項

npm i webpack-dev-server --save-dev

package.json中的配置代碼

"scripts": {"start":"webpack-dev-server --mode development --open","build":"webpack --mode production"}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末村生,一起剝皮案震驚了整個濱河市惊暴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌趁桃,老刑警劉巖辽话,帶你破解...
    沈念sama閱讀 222,729評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肄鸽,死亡現(xiàn)場離奇詭異,居然都是意外死亡油啤,警方通過查閱死者的電腦和手機贴捡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,226評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來村砂,“玉大人烂斋,你說我怎么就攤上這事〈》希” “怎么了汛骂?”我有些...
    開封第一講書人閱讀 169,461評論 0 362
  • 文/不壞的土叔 我叫張陵,是天一觀的道長评腺。 經(jīng)常有香客問我帘瞭,道長,這世上最難降的妖魔是什么蒿讥? 我笑而不...
    開封第一講書人閱讀 60,135評論 1 300
  • 正文 為了忘掉前任蝶念,我火速辦了婚禮,結(jié)果婚禮上芋绸,老公的妹妹穿的比我還像新娘媒殉。我一直安慰自己,他們只是感情好摔敛,可當我...
    茶點故事閱讀 69,130評論 6 398
  • 文/花漫 我一把揭開白布廷蓉。 她就那樣靜靜地躺著,像睡著了一般马昙。 火紅的嫁衣襯著肌膚如雪桃犬。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,736評論 1 312
  • 那天行楞,我揣著相機與錄音攒暇,去河邊找鬼。 笑死子房,一個胖子當著我的面吹牛形用,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播池颈,決...
    沈念sama閱讀 41,179評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼尾序,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了躯砰?” 一聲冷哼從身側(cè)響起每币,我...
    開封第一講書人閱讀 40,124評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎琢歇,沒想到半個月后兰怠,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梦鉴,經(jīng)...
    沈念sama閱讀 46,657評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,723評論 3 342
  • 正文 我和宋清朗相戀三年揭保,在試婚紗的時候發(fā)現(xiàn)自己被綠了肥橙。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,872評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡秸侣,死狀恐怖存筏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情味榛,我是刑警寧澤椭坚,帶...
    沈念sama閱讀 36,533評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站搏色,受9級特大地震影響善茎,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜频轿,卻給世界環(huán)境...
    茶點故事閱讀 42,213評論 3 336
  • 文/蒙蒙 一垂涯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧航邢,春花似錦耕赘、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,700評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至秽之,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間吃既,已是汗流浹背考榨。 一陣腳步聲響...
    開封第一講書人閱讀 33,819評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留鹦倚,地道東北人河质。 一個月前我還...
    沈念sama閱讀 49,304評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像震叙,于是被迫代替她去往敵國和親掀鹅。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,876評論 2 361

推薦閱讀更多精彩內(nèi)容