摘要:功能強(qiáng)大,有很多獨(dú)特的功能,但其中一個(gè)難點(diǎn)是配置文件。為此團(tuán)隊(duì)改變了這一現(xiàn)狀默認(rèn)不需要配置文件。每個(gè)選項(xiàng)的默認(rèn)配置如下指兩個(gè)配置項(xiàng)都存在的屬性中解決了的會(huì)被刪除刪除空的合并重復(fù)的調(diào)試緩存模塊避免在未更改時(shí)重建它們。
webpack功能強(qiáng)大,有很多獨(dú)特的功能,但其中一個(gè)難點(diǎn)是配置文件。為此,webpack團(tuán)隊(duì)改變了這一現(xiàn)狀:webpack 4默認(rèn)不需要配置文件。可以通過mode選項(xiàng)為webpack指定一些默認(rèn)的配置。mode分為development/production,默認(rèn)為production。每個(gè)選項(xiàng)的默認(rèn)配置如下(common指兩個(gè)配置項(xiàng)都存在的屬性):
common//parent chunk中解決了的chunk會(huì)被刪除 optimization.removeAvailableModules:true //刪除空的chunks optimization.removeEmptyChunks:true //合并重復(fù)的chunk optimization.mergeDuplicateChunks:true
development
//調(diào)試 devtool:eval //緩存模塊, 避免在未更改時(shí)重建它們。 cache:true //緩存已解決的依賴項(xiàng), 避免重新解析它們。 module.unsafeCache:true //在 bundle 中引入「所包含模塊信息」的相關(guān)注釋 output.pathinfo:true //在可能的情況下確定每個(gè)模塊的導(dǎo)出,被用于其他優(yōu)化或代碼生成。 optimization.providedExports:true //找到chunk中共享的模塊,取出來生成多帶帶的chunk optimization.splitChunks:true //為 webpack 運(yùn)行時(shí)代碼創(chuàng)建多帶帶的chunk optimization.runtimeChunk:true //編譯錯(cuò)誤時(shí)不寫入到輸出 optimization.noEmitOnErrors:true //給模塊有意義的名稱代替ids optimization.namedModules:true //給模chunk有意義的名稱代替ids optimization.namedChunks:true
production
//性能相關(guān)配置 performance:{hints:"error"....} //某些chunk的子chunk已一種方式被確定和標(biāo)記,這些子chunks在加載更大的塊時(shí)不必加載 optimization.flagIncludedChunks:true //給經(jīng)常使用的ids更短的值 optimization.occurrenceOrder:true //確定每個(gè)模塊下被使用的導(dǎo)出 optimization.usedExports:true //識(shí)別package.json or rules sideEffects 標(biāo)志 optimization.sideEffects:true //嘗試查找模塊圖中可以安全連接到單個(gè)模塊中的段。- - optimization.concatenateModules:true //使用uglify-js壓縮代碼 optimization.minimize:true
webpack運(yùn)行時(shí)還會(huì)根據(jù)mode設(shè)置一個(gè)全局變量process.env.NODE_ENV,這里的process.env.NODE_ENV不是node中的環(huán)境變量,而是webpack.DefinePlugin中定義的全局變量,允許你根據(jù)不同的環(huán)境執(zhí)行不同的代碼.
例如:
if(process.env.NODE_ENV === "development"){ //開發(fā)環(huán)境 do something }else{ //生產(chǎn)環(huán)境 do something }
最終將編譯成
if(true){ //開發(fā)環(huán)境 do something }else{ //生產(chǎn)環(huán)境 do something }
生產(chǎn)環(huán)境下,uglify打包代碼時(shí)會(huì)自動(dòng)刪除不可達(dá)代碼,也就是說生產(chǎn)環(huán)境壓縮后最終的代碼為:
//生產(chǎn)環(huán)境 do something
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/93401.html
摘要:當(dāng)下最流行的模塊打包器于年月日正式發(fā)布版本,代號(hào)。從官方的發(fā)布日志來看本次大版本更新帶來了很多新特性更新和改善,這將會(huì)讓的配置更加簡單。本文,筆者將會(huì)全面介紹的新特性及實(shí)踐。只支持模塊,目前處于試驗(yàn)階段。 導(dǎo)語: webpack是一個(gè)JS應(yīng)用打包器, 它將應(yīng)用中的各個(gè)模塊打成一個(gè)或者多個(gè)bundle文件。借助loaders和plugins,它可以改變、壓縮和優(yōu)化各種各樣的文件。它的輸入...
摘要:前段時(shí)間又發(fā)布了新版本我接觸的時(shí)候已經(jīng)版本了支持的版本必須打包速度大小比較以及粗淺的試了一下下圖所示,黃色為版本綠色為我寫的配置,跟基本相似,具體不同下面會(huì)介紹藍(lán)色是自帶的模式紅色為具體大小速度大家可以比較一下,還是很給力的關(guān)于配置方面,應(yīng) 前段時(shí)間webpack又發(fā)布了新版本webpack4我接觸的時(shí)候已經(jīng)4.1版本了node支持的版本必須node: >=6.11.5 webpack...
摘要:特性比較熱門的兩大特性,零配置和速度快號(hào)稱提速上限一般情況下,相比于低版本,場景下第三方依賴打包速度和場景下本地服務(wù)首次啟動(dòng)速度都得到顯著提升零配置通過指定當(dāng)前場景為開發(fā)模式還是生產(chǎn)模式,自動(dòng)設(shè)置好當(dāng)前場景的默認(rèn)配置,用戶即可馬上使用,不需 webpack4特性 webpack4比較熱門的兩大特性,零配置和速度快(號(hào)稱提速上限98%) 一般情況下,webpack4相比于低版本,prod...
摘要:默認(rèn)出入口在中,不再強(qiáng)制要求指定和路徑。構(gòu)建模式提供了兩種構(gòu)建模式可供選擇和選項(xiàng)描述會(huì)將的值設(shè)為。如果是,那就會(huì)開啟。默認(rèn)只會(huì)對(duì)按需加載的代碼做分割。在或更低版本中,如果你想為一個(gè)推導(dǎo)出來的定制選項(xiàng),你不得不在自己的選項(xiàng)中將它重復(fù)一遍。 前言 現(xiàn)在距離2018年2月15號(hào)webpack4.0.0出來已經(jīng)有一段時(shí)間了,現(xiàn)在已經(jīng)出了 @vue/cli 3.0,但是樓主還沒試過,聽說很強(qiáng)大,...
摘要:簡介模式是新增的配置,用來指定使用對(duì)應(yīng)模式的內(nèi)置優(yōu)化它有三個(gè)可選模式默認(rèn)為。源碼地址選項(xiàng)描述通過插件將的值設(shè)為。啟用和通過插件將的值設(shè)為。使用默認(rèn)的優(yōu)化項(xiàng)。注意上面說的并不是的運(yùn)行環(huán)境變量,它其實(shí)是通過插件設(shè)置的一個(gè)全局變量。 簡介 ? mode(模式)是webpack4.0.0新增的配置,用來指定webpack使用對(duì)應(yīng)模式的內(nèi)置優(yōu)化;它有三個(gè)可選模式:producti...
閱讀 848·2023-04-25 23:59
閱讀 3738·2021-10-08 10:04
閱讀 1679·2019-08-30 14:05
閱讀 1015·2019-08-30 13:58
閱讀 489·2019-08-29 18:41
閱讀 1125·2019-08-29 17:15
閱讀 2318·2019-08-29 14:13
閱讀 2744·2019-08-29 13:27