resolve.root
, resolve.fallback,resolve.modulesDirectories,
,這三個(gè)選項(xiàng)現(xiàn)在全部合并到resolve.modules一個(gè)選項(xiàng)中。關(guān)于resolving,查看更多
resolve.extensions
這個(gè)配置項(xiàng)不再?gòu)?qiáng)制要求傳入一個(gè)空字符串,這個(gè)行為被移動(dòng)到了resolve.enforceExtension配置項(xiàng)
更多不常用的配置項(xiàng)不再一一列出來(lái),詳情請(qǐng)查看 resolving,查看更多。
功能更強(qiáng)大的rules系統(tǒng)取代了老版本中的loader,但是老的moduler.loader寫法依然是被支持的,新的命名規(guī)則更加通俗易懂,非常建議使用新的module.rules。
同webpack1.x類似,鏈?zhǔn)絣oaders繼續(xù)支持鏈?zhǔn)綄懛?,匹配到的文件可以從一個(gè)loader傳遞到下一個(gè)loader,在新的rule.use配置項(xiàng)中,可以通過(guò)use項(xiàng)來(lái)指定需要用到的loader列表,在webpack1.x中需要用!來(lái)分割不同的loader,新版本只在module.loader中支持這種寫法。
現(xiàn)在在配置loader的時(shí)候不允許省略-loader擴(kuò)展名,例如:style-loader不可以簡(jiǎn)寫為style
如果你想繼續(xù)使用省略-loader的寫法,你可以在resolveLoader.moduleExtensions配置省略的-loader,不過(guò)不建議這么做
在沒(méi)有為json文件配置loader的時(shí)候,webpack會(huì)默認(rèn)自動(dòng)使用json-loader來(lái)加載json文件
在 webpack 1 中,loader 默認(rèn)配置下 resolve 相對(duì)于被匹配的文件。而在 webpack 2 中默認(rèn)配置的 resolve 相對(duì)于 context
配置項(xiàng)。
這解決了一些問(wèn)題,比如使用 npm link
或引用 context
之外的模塊時(shí)導(dǎo)致重復(fù)載入。
移除了module.preloaders和module.postLoaders
UglifyJsPlugin
的 sourceMap
配置項(xiàng)現(xiàn)在默認(rèn)為 false
而不是 true
。
這意味著如果你在壓縮代碼時(shí)啟用了 source map,或者想要讓 uglifyjs 的警告能夠?qū)?yīng)到正確的代碼行,你需要將 UglifyJsPlugin
的 sourceMap
設(shè)為 true
。
UglifyJsPlugin warnings
UglifyJsPlugin
的 compress.warnings
配置項(xiàng)現(xiàn)在默認(rèn)為 false
而不是 true
。
這意味著如果你想要看到 uglifyjs 的警告信息,你需要將 compress.warnings
設(shè)為 true
。
UglifyJsPlugin minimize loaders
UglifyJsPlugin
不再壓縮 loaders。在未來(lái)很長(zhǎng)一段時(shí)間里,需要通過(guò)設(shè)置 minimize:true
來(lái)壓縮 loaders。參考 loader 文檔里的相關(guān)配置項(xiàng)。
loaders 的壓縮模式將在 webpack 3 或更高的版本中被取消。
為了兼容舊的 loaders,loaders 可以通過(guò)插件來(lái)切換到壓縮模式:
DedupePlugin 現(xiàn)在是被默認(rèn)加載的
從你的配置文件中移除webpack.optimize.DedupePlugin
BannerPlugin
大變化BannerPlugin不再接收兩個(gè)參數(shù),取而代之的是一個(gè)對(duì)象
OccurrenceOrderPlugin
不再需要手動(dòng)加入,現(xiàn)在是默認(rèn)的
ExtractTextWebpackPlugin
大變化ExtractTextPlugin 1.0.0 不能在 webpack v2 下工作。 你需要安裝ExtractTextPlugin v2。
npm install --save-dev extract-text-webpack-plugin@beta
新的ExtractTextPlugin插件的配置也發(fā)生了大變化
require.ensure和 AMD
require 是
異步的現(xiàn)在這些函數(shù)總是異步的,而不是當(dāng) chunk 已經(jīng)加載過(guò)的時(shí)候同步調(diào)用它們的 callback。
注意 require.ensure
現(xiàn)在依賴于原生的 Promise
。如果在不支持 Promise 的環(huán)境里使用 require.ensure
,你需要添加 polyfill。
在webpack.config.js
中將不再允許使用自定義屬性來(lái)配置loder,例如:在ts
配置項(xiàng)中的自定義屬性將無(wú)法在被在webpack2中正確使用:
嚴(yán)格來(lái)說(shuō),有兩種辦法,都可以用來(lái)配置 webpack 的 loader。典型的 options
被稱為 query
,是一個(gè)可以被添加到 loader 名之后的字符串。它比較像一個(gè) query string,但是實(shí)際上有更強(qiáng)大的能力:
不過(guò)它也可以分開(kāi)來(lái),寫成一個(gè)單獨(dú)的對(duì)象,緊跟在 loader 屬性后面:
LoaderOptionsPlugin
context有的 loader 需要從配置中讀取一些 context 信息。在未來(lái)很長(zhǎng)一段時(shí)間里,這將需要通過(guò) loader options 傳入。詳見(jiàn) loader 文檔的相關(guān)選項(xiàng)。
為了保持對(duì)舊 loaders 的兼容,這些信息可以通過(guò)插件傳進(jìn)來(lái):
debug
在 webpack 1 中 debug
配置項(xiàng)切換 loaders 到 debug 模式。在將來(lái)很長(zhǎng)一段時(shí)間里,這將需要通過(guò) loader 配置項(xiàng)傳遞。詳見(jiàn) loader 文檔的相關(guān)選項(xiàng)。
loaders 的 debug 模式將在 webpack 3 或后續(xù)版本中取消。
為了保持對(duì)舊 loaders 的兼容,loader 可以通過(guò)插件來(lái)切換到 debug 模式。
在 webpack v1 中,你能使用 require.ensure
作為方法來(lái)懶加載 chunks 到你的應(yīng)用中:
ES2015 模塊加載規(guī)范定義了 import()
方法來(lái)運(yùn)行時(shí)動(dòng)態(tài)地加載 ES2015 模塊。
webpack 將 import()
作為分割點(diǎn)并將被請(qǐng)求的模塊放到一個(gè)單獨(dú)的 chunk 中。
import()
接收模塊名作為參數(shù),并返回一個(gè) Promise。
好處是:如果加載 chunk 失敗,我們可以進(jìn)行處理,因?yàn)楝F(xiàn)在它基于 Promise
。
警告:require.ensure
允許用可選的第三個(gè)參數(shù)為 chunk 簡(jiǎn)單命名,但是 import
API 還未提供這個(gè)功能。如果你想要保留這個(gè)功能,你可以繼續(xù)使用 require.ensure
。
可以傳遞部分表達(dá)式給 import()
。這與 CommonJS 對(duì)表達(dá)式的處理方式一致(webpack 為所有可能匹配的文件創(chuàng)建 context)。
import()
為每一個(gè)可能的模塊創(chuàng)建獨(dú)立的 chunk。
你可以自由混合使用三種模塊類型(甚至在同一個(gè)文件中)。在這個(gè)情況中 webpack 的行為和 babel 以及 node-eps 一致:
但是請(qǐng)注意,不能讓babe解析這些模塊,從而讓 webpack 可以使用它們。你可以通過(guò)設(shè)置如下配置到 .babelrc
或 babel-loader 來(lái)實(shí)現(xiàn)這一點(diǎn)。
模板字符串
webpack 現(xiàn)在支持表達(dá)式中的模板字符串了?,F(xiàn)在你可以這樣使用:
webpack 現(xiàn)在支持在配置文件中返回 Promise
了。這讓你能在配置文件中做異步處理。
ebpack 現(xiàn)在支持對(duì) loader 進(jìn)行更多方式的匹配。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。