webpack4.0配置記錄(2)

接上一篇webpack4.0配置記錄(1),繼續記錄學習webpack配置。

定義環境變量

new Webpack.DefinePlugin({//用來定義全局環境變量DEV:JSON.stringify('dev'),FLAG:'true'
}),

webpack簡單優化

  1. noParse
module:{noParse:'/jquery/',//不去解析設置的包所依賴的關系,如jquery
}
  1. ignorePlugin
module:{noParse:'/jquery/',//不去解析設置的包所依賴的關系rules:[{test:/\.js$/,exclude:/node_modules/,include:path.resolve('src'),use:{loader:'babel-loader',options:{presets:['@babel/preset-env','@babel/preset-react']}}}]
}

通過exclude排除和include包含某些模塊
另外也可以使用webpack自帶的ignorePlugin插件排除某些包,減少體積。

new webpack.IgnorePlugin(/\.\/locale/,/moment/),

以上配置忽略了時間格式化moment.js中的語言包

  1. happypack多線程打包
let Happypack=require('happypack')
...
module.exports={module:{noParse:'/jquery/',//不去解析設置的包所依賴的關系rules:[{test:/\.js$/,exclude:/node_modules/,include:path.resolve('src'),use:'Happypack/loader?id=js'// use:{//     loader:'babel-loader',//     options:{//         presets:[//             '@babel/preset-env',//             '@babel/preset-react'//         ]//     }// }}]},plugins:[new Happypack({id:'js',use:[{loader:'babel-loader',options:{presets:['@babel/preset-env','@babel/preset-react']}}]})]
}
  1. webpack內置功能

(1)tree-shaking
(2)scope-hosting
這兩項優化只在生產環境下有效

  1. 抽離公共代碼
module.exports={optimization:{splitChunks:{//分割代碼塊cacheGroups:{//緩沖組common:{chunks:'initial',minSize:0,//抽離模塊最小粒度是0minChunks:2//表示代碼塊用過2次以上就要抽離},vendor:{priority:1,//相當于權重,先抽離第三方模塊,如果不設置該屬性,分割代碼塊將從上到下,無法抽離第三方模塊。test:/node_modules/,chunks:'initial',minSize:0,//抽離模塊最小是0minChunks:2//表示用過2次以上就要抽離}}}},
}
  1. 文件熱更新
devServer:{hot:true
},
plugins:[new webpack.NamedModulesPlugin(),//打印更新的模塊路徑new webpack.HotModuleReplacementPlugin()//熱更新
]

7.可以使用dllPlugin動態鏈接庫優化
DllPlugin 和 DllReferencePlugin提供了以大幅度提高構建時間性能的方式拆分軟件包的方法。原理是將特定的第三方NPM包模塊提前構建,然后通過頁面引入。這不僅能夠使得vendor文件可以大幅度減小,同時,也極大的提高了構件速度。網上別的大神有一篇文章寫的很詳細,可以參考,傳送門。

以上就是一些自己在學習webpack4.0配置過程中的一些學習記錄,寫出來和大家分享,如果有錯誤,還望告知。個人博客同步更新,歡迎關注交流!不要忘了點個贊,謝謝!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/275968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/275968.shtml
英文地址,請注明出處:http://en.pswp.cn/news/275968.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

flex如何做響應式設計_響應式設計-您做錯了!

flex如何做響應式設計Responsive design is not just about the web that automatically adjusts to different screen resolutions and resizeable images, but designs that are crucial for web performance.自適應設計不僅涉及可自動適應不同屏幕分辨率和可調整大小圖像的網…

怎么查看和獲取SQL Server實例名

查看實例名時可用 1、服務—SQL Server(實例名),默認實例為(MSSQLSERVER) 或在連接企業管理時-查看本地實例 2、通過注冊表 HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Microsoft SQL Server/InstalledInstance 3、用命令 sqlcmd/osql sqlcmd -L sqlcmd -Lc osql -L 獲…

30萬手表推薦_今年六十歲生日,兒子說要送只30萬的手表,請問有哪些推薦?...

關注腕表部落,盡享腕表生活一位讀者向筆者提出這樣一個問題:今年六十歲生日,兒子說要送只30萬的手表,請問有哪些推薦?首先要恭喜這位老爺子,一來是生日馬上就要到了,二來是還有這么孝順而且慷慨…

關注博客

https://blog.51cto.com/oldboyhttps://blog.51cto.com/yw666轉載于:https://blog.51cto.com/11732716/2348556

寫 Node.js 代碼,從學會調試開始

大家好,我是若川(點這里加我微信 ruochuan12,長期交流學習)。今天推薦這篇調試文章,熟悉我的讀者都知道我寫的源碼文章都多次強調要調試,而且寫了調試方法。點擊下方卡片關注我、加個星標,或者查…

創建用戶友好的表單

Forms are a common way to engage with users and could be a user’s first impression of your product. Since forms aren’t always the user’s favourite thing, it is essential to make filling out forms as easy as possible. Let’s go over a few tips for creati…

細節決定成敗—關于.net的.dll.refresh文件

一直在做.net的項目,c/s的、b/s的,一直沒有注意這個東西。眾所周知,.net的程序生成后會在bin目錄下生成.dll文件,而.dll.refresh這個文件從何而來呢?那天無聊地google了下才知,這個東東是在你的項目中引用第…

環境在c盤_如何給女朋友解釋為什么 Windows 上面的軟件都把自己安裝在 C 盤

本文經授權轉載自漫畫編程(ID:mhcoding)周末,我在家里面看電視,女朋友正在旁邊鼓搗她的電腦,但是好像并不是很順利,于是就有了以下對話。計算機存儲我們使用的計算機中,保存信息的介質有兩類:一…

能讓你縱享絲滑的SSR技術,轉轉這樣實踐

大家好,我是若川(點這里加我微信 ruochuan12,長期交流學習)。今天推薦這篇圖文并茂的SSR技術文章。這是江西前端群里一個小伙伴的文章。群里小伙伴很多都在知名大廠,但他們都很低調。點擊下方卡片關注我、加個星標&…

魅族魅藍mirror簡單打開usb調試模式的步驟

經常我們使用安卓手機鏈接電腦的時候,或者使用的有些應用比如我們企業營銷團隊經常使用的應用引號精靈,以前使用的老版本就需要開啟USB調試模式下使用,現經常新版本不需要了,如果手機沒有開啟USB調試模式,電腦則無辦法…

hp-ux 單用戶 啟動_UX備忘單:搜索與瀏覽

hp-ux 單用戶 啟動重點 (Top highlight)When designing search results and interest sites, you have to keep in mind what ‘mode’ your user is in. Are they in ‘searching mode’ or ‘browsing mode’? This will help you determine how to design your platform to…

細數開源歷史上的九個重大事件

開放源碼(開源)的精神在于使用者可以使用、復制、散布、研究和改進軟件。這可以追溯到20世紀60年代,至今已有半個世紀了。伯樂在線-職場博客的這篇文章將列舉開源歷史上的九大重要事件。雖然本文不是專門對開源產品,但還是說到了一…

有贊大數據平臺安全建設實踐

一、概述 在大數據平臺建設初期,安全也許并不是被重點關注的一環。大數據平臺的定位主要是服務數據開發人員,提高數據開發效率,提供便捷的開發流程,有效支持數倉建設。大數據平臺的用戶都是公司內部人員。數據本身的安全性已經由公…

請先設置tkk_理光MP2014掃描至文件夾的設置方法

理光旗下的2014系列入門級A3黑白復印機市場保有量較大,該系列機型加裝M16網卡后可以方便的實現掃描至文件夾功能,經常有客戶咨詢該機型的掃描設置方法,下面我就以MP2014D為例來演示一下該機型的SMB掃描設置方法:首先是在電腦上建立…

聽說現在都考這些React面試題

大家好,我是若川。最近刷脈脈看見圈里都在聊面試,吐槽最多的還是萬年考點 React 和 Vue。不過關于兩者的比較似乎有點針尖對麥芒的趕腳。確實,面試的偏重點往往映射公司對該框架的重視程度,但也不能一概而論,去學習或放…

開發中的問題——環境相關

開始了解Android差不多兩周了,作為一名.net開發者,首次接觸Java類的技術,免不了會碰到一些問題,開博的第一篇就來說說自己遇到的問題以及一些感受。關于Android開發環境的搭建,網上已經有很多,其實等更新完…

荒島余生為什么沒有打開包裹_您會帶到荒島什么辦公桌設置?

荒島余生為什么沒有打開包裹Throughout life, you experience a lot of desks and a lot of desk setups. Real or virtual, at the office or at home, temporal or permanent — just a way to call it, nothing is permanent— a big one with a great office view or a sma…

c++ 整數取反_c++ 取反運算符“~”

取反符將二進制表示的數字中的0變為1, 1變為0但是需要注意的是c中對int型進行取反操作時,將前面的前導0也進行了取反(int型變量為32bit)。比如1的二進制表示是00000000 00000000 00000000 00000001~(00000000 00000000 00000000 00000001) 11111111 11111111 11111…

第五課 路由之初識路由

1.路由快速入門 1.1 概念 是指把數據從一個地方傳送到另一個地方的行為和動作,而路由器,正是執行這種行為動作的機器。它的英文名稱為Router,是一種連接多個網絡或者網段的網絡設備,它能將不同網絡或者網段之間的數據信息進行“翻…

Console Snacks[摘自Advanced Rails Recipes]

1. Write Console Methods在~/.irbrc定義ActvieRecord::Base.connection.select_all方法1.# ~/.railsrc2.def sql(query)3.ActiveRecord::Base.connection.select_all(query)4.end1.# ~/.irbrc2.if ENV[RAILS_ENV]3.load File.dirname(__FILE__) /.railsrc4.end這樣就可以在直…