webpack总结篇

一、webpack简介

1.1 版本更迭

image.png

大版本变化

image.png

1.2 功能进化

Webpack V1

Webpack V2

Webpack V3

V1 -> V2

迁移指南 https://doc.webpack-china.org/guides/migrating/

V2 -> V3

更新升级即可

二、webpack核心概念

2.1 Entry

2.2 Output

2.3 Loaders

2.3.1 常用Loader

编译相关

样式相关

文件相关

2.4 Plugins

2.4.1 常用plugins

优化相关

功能相关

2.5 名词

三、初探 webpack

3.1 使用babel打包es6

3.1.1 编译 ES 6/7

Babel

Babel Presets

Babel Polyfill

Babel Runtime Transform

例子

3.2 打包 Typescript

配置

tsconfig

Typings

例子

3.3 提取 js 的公用代码

例子

image.png

3.4 代码分割和懒加载

第一种方式:通过wepack内置方法

第二种方式:通过ES2015 Loader Spec

import()方式返回一个promise在import中传入需要依赖的明,动态加载模块,就可以像使用Promise一样使用import().then()

代码分割场景

例子

运行打包这时loadash提取到vendor中

image.png

这时候还不是我们想要的

image.png

image.png

image.png

import()动态加载的写法

合并了subPageA和subPageB

image.png

来看看打包后的文件,既有A、B

image.png

在webpack代码分割中使用async异步加载

image.png

image.png

3.5 处理 CSS 和 CSS 模块化

引入css

Style-Loader

Style-Loader的options

例子

CSS-Loader

options

CSS-Modules

例子

配置Less / Sass

例子

提取 CSS

例子

image.png

3.6 PostCSS in Webpack

安装

例子

3.7 Tree shaking

3.7.1 JS Tree shaking

使用场景

例子

3.7.2 CSS Tree shaking

例子

四、由浅入深Webpack

4.1 文件处理

4.1.1 图片处理

4.1.2 处理雪碧图、base64、压缩图片

4.1.2 处理字体文件

4.1.3 处理第三方 JS 库

1.providePlugin

以引入jQuery为例

引入本地libs中的jQuery

2.imports-loader

4.2 HTML in webpack(自动生成HTML)

4.2.1 生成 HTML

options

4.2.2 HTML 中引入图片



  • 璇﹁В濡備綍webpack浣跨敤DllPlugin
    绛旓細鍩烘湰鐢ㄦ硶浣跨敤dll鏃讹紝鍙互鎶婃瀯寤鸿繃绋嬪垎鎴恉ll鏋勫缓杩囩▼鍜屼富鏋勫缓杩囩▼锛堝疄璐ㄤ篃灏辨槸濡傛锛夛紝鎵浠ラ渶瑕佷袱涓瀯寤洪厤缃枃浠讹紝渚嬪鍙仛webpack.config.js鍜寃ebpack.dll.config.js銆1. 浣跨敤DLLPlugin鎵撳寘闇瑕佸垎绂诲埌鍔ㄦ佸簱鐨勬ā鍧桪llPlugin鏄痺ebpack鍐呯疆鐨勬彃浠讹紝涓嶉渶瑕侀澶栧畨瑁咃紝鐩存帴閰嶇疆webpack.dll.config.js鏂囦欢锛歮odule....
  • web鍓嶇骞村害宸ヤ綔鎬荤粨
    绛旓細鏃堕棿涔樼潃骞磋疆寰簭寰鍓,涓娈垫椂闂寸殑宸ヤ綔宸茬粡缁撴潫浜,鍥為【杩囧幓杩欐鏃堕棿鐨勫伐浣,鏀惰幏棰囦赴,濂藉ソ鍦板仛涓⒊鐞嗗苟鍐欎竴浠藉伐浣滄荤粨鍚с傚伐浣滄荤粨鎬庝箞鍐欐墠鑳藉彂鎸ュ畠鏈澶х殑浣滅敤鍛?涓嬮潰鏄垜甯ぇ瀹舵暣鐞嗙殑web鍓嶇骞村害宸ヤ綔鎬荤粨鑼冩枃,浠呬緵鍙傝,澶у涓璧锋潵鐪嬬湅鍚с web鍓嶇骞村害宸ヤ綔鎬荤粨 绡1 浠庡叆鑱屽埌鐜板湪,鎴戝湪瀵煎笀鐨勬寚瀵间笅璧颁笂浜嗗墠绔箣璺
  • Vue鐢webpack鎼缓鐨勯」鐩亣鍒扮殑disconnected闂
    绛旓細鎴戜笓闂ㄨ姳浜嗗嚑澶╃殑鏃堕棿鐮旂┒浜嗕竴涓webpack杩欎釜鐩墠鏉ョ湅姣旇緝鐑棬鐨勬ā鍧楀姞杞藉吋鎵撳寘宸ュ叿,鍙戠幇涓婃墜骞朵笉鏄緢瀹规槗,鐜板皢鎬荤粨鐨勪竴浜涙湁鍏抽厤缃殑蹇冨緱鍒嗕韩鍑烘潵,娆㈣繋澶х鏉ユ媿鐮栥傘傘備竴銆佹柊寤轰竴涓」鐩洰褰,cd /d 瀹氫綅杩涘幓,鐒跺悗杈撳叆npm init,浼氭彁绀轰綘濉啓涓浜涢」鐩殑淇℃伅,涓鐩村洖杞﹂粯璁ゅ氨濂戒簡,鎴栬呯洿鎺ユ墽琛宯pm init -y 鐩存帴璺宠繃,杩...
  • require.ensure鏄粈涔堣娉
    绛旓細浣嗗湪闇瑕佽繘琛屼唬鐮佸垎鍓插拰鎳掑姞杞芥椂锛宍require.ensure`浼氭槸涓涓緢濂界殑閫夋嫨銆傚悓鏃讹紝闅忕潃Webpack鐗堟湰鐨勮凯浠f洿鏂帮紝鏌愪簺鐗规у彲鑳戒細鏈夋墍鍙樺寲锛屽洜姝ゅ缓璁紑鍙戣呭湪浣跨敤鏃舵煡闃呮渶鏂扮殑瀹樻柟鏂囨。銆鎬荤粨鏉ヨ锛宍require.ensure`鏄疻ebpack鎻愪緵鐨勪竴绉嶅紓姝ュ姞杞芥ā鍧楃殑璇硶锛屼富瑕佺敤浜庢ц兘浼樺寲鍜屾寜闇鍔犺浇鐨勫満鏅
  • webpack涓璶ode-sass銆乻ass-loader鍦↙inux涓畨瑁呴棶棰
    绛旓細7銆佸彲浠ュ埌package.json鏂囦欢涓煡鐪嬪寘鏄惁瀛樺湪 鎬荤粨锛 瀹夎鍚勭webpack鐨勪緷璧栫粡甯镐細鍑虹幇杩欑鎴栭偅鏍风殑闂锛岄渶瑕佹垜浠粩缁嗗垎鏋愪竴涓嬫姤閿欐墠琛屻傝櫧鐒剁綉涓婃湁鍚勭闂鐨勫畨瑁呮柟娉曪紝浣嗘寜鐓т粬浠殑涔熻鍙锛屼篃璁镐笉鍙锛屼絾鎬讳細鑰楄垂鑷繁鐨勫ぇ閲忔椂闂淬傛墍浠ヤ粩缁嗗垎鏋愯嚜宸辩殑鎶ラ敊鏄粈涔堝師鍥犲鑷寸殑锛屾墠鑳藉鐥囦笅鑽揩閫熻В鍐抽棶棰樸
  • vue寮曠敤js鏂囦欢鐨勫绉嶆柟寮(鎺ㄨ崘)
    绛旓細1銆乿ue-cli webpack鍏ㄥ眬寮曞叆jquery (1) 棣栧厛 npm install jquery --save (--save 鐨勬剰鎬濇槸灏嗘ā鍧楀畨瑁呭埌椤圭洰鐩綍涓嬶紝骞跺湪package鏂囦欢鐨刣ependencies鑺傜偣鍐欏叆渚濊禆銆)(2)鍦╳ebpack.base.conf.js閲屽姞鍏 var webpack = require("webpack")(3)鍦╩odule.exports鐨勬渶鍚庡姞鍏 plugins: [ new web...
  • 闆跺熀纭瀛Web鍓嶇鐨勫涔犺矾绾鎬荤粨
    绛旓細浠婂ぉ灏忕紪瑕佽窡澶у鍒嗕韩鐨勬枃绔犳槸鍏充簬闆跺熀纭瀛Web鍓嶇鐨勫涔犺矾绾鎬荤粨锛屽噯澶囧涔web鍓嶇鐭ヨ瘑鐨勫皬浼欎即浠潵鍜屽皬缂栦竴璧风湅涓鐪嬪惂锛屽笇鏈涙湰绡囨枃绔犺兘澶熷澶у鏈夋墍甯姪銆傜涓涓樁娈碉細1銆丠TML+CSS:HTML杩涢樁銆丆SS杩涢樁銆乨iv+css甯冨眬銆丠TML+css鏁寸珯寮鍙戙2銆丣avaScript鍩虹锛欽s鍩虹鏁欑▼銆乯s鍐呯疆瀵硅薄甯哥敤鏂规硶銆佸父瑙丏OM鎿嶄綔銆...
  • vue-cli鑴氭墜鏋跺紩鍏ュ浘鐗囩殑鍑犵鏂规硶鎬荤粨
    绛旓細閲岄潰娣诲姞涓嬮潰杩欎釜灞炴у氨瀹岀編瑙e喅浜唒ublicPath: '../../'瑙i噴鏂囦欢鏈缁堜細鎵撳寘鍘嬬缉涓簀s銆傚綋杩愯鐨勬椂鍊欙紝css涓殑鐩稿璺緞鎸囧悜宸茬粡鍙戠敓鍙樺寲鎸囧悜浜嗘牴鐩綍锛屾墍浠ュ嚭鐜板姞杞介敊璇殑闂銆備笅闈㈡槸杩欎釜鎻掍欢鐨勮В閲娿俥xtract-text-webpack-plugin浣滅敤锛氳鎻掍欢鐨勪富瑕佹槸涓轰簡鎶界css鏍峰紡,闃叉灏嗘牱寮忔墦鍖呭湪js涓紩璧烽〉闈㈡牱寮忓姞杞...
  • 鎴戠殑2019骞鎬荤粨:鍙堝姫鍔涘張骞歌繍鐨勪竴骞
    绛旓細2018-2019骞磋嚜宸卞浜嗕笉灏戞柊鎶鏈紝NodeJs锛孧ogoDB锛孯eact锛孴ypeScript锛Webpack锛孍S6-7绛夛紝鎬荤粨杩欎袱骞寸殑瀛︿範锛屾湁寰堝鏄捐屾槗瑙佺殑闂锛氬浜嗗鏋滀笉缁忓父搴旂敤锛屽氨蹇樿浜嗭紱涓嶅璁ょ湡锛屾湁鏃跺欒寰楃湅鏄庣櫧灏变笉鍔ㄦ墜锛屽挨鍏剁湅瑙嗛瀛︿範鐨勬椂鍊欙紱鍔ㄦ墜鏁蹭簡涓閬嶏紝灏辫寰椾細浜嗭紝浠ヨ嚦浜庢病鏈夋繁鍏ユ濊冿紱鍥犱负鎯冲鐨勫お澶氾紝鏃堕棿...
  • 璇﹁ВJs涓殑妯″潡鍖栨槸濡備綍瀹炵幇鐨
    绛旓細鎵浠Webpack 鏄竴绉嶅湪闈炶繍琛屾椂鐨勬ā鍧楀寲鏂规(鍩轰簬 CommonJs),鍙湁鍦ㄩ厤缃簡寮傛妯″潡鐨勬椂鍊欏寮傛妯″潡鐨勫姞杞芥墠鏄繍琛屾椂鐨(鍩轰簬 AMD)浜斻佹ā鍧楀寲瑙勮寖閫氱敤鐨勯棶棰樺湪瑙e喅鐨勮繃绋嬩腑鎬讳細褰㈡垚瑙勮寖,涓婃枃宸茬粡澶氭鎻愬埌 CommonJs銆丄MD銆丆MD,鏈夊繀瑕佽姳鐐圭瘒骞呮潵璁蹭竴璁茶鑼僇s 鐨勬ā鍧楀寲瑙勮寖鐨勮悓鍙戜簬灏 Js 鎵╁睍鍒板悗绔殑鎯虫硶,瑕佷娇寰 ...
  • 扩展阅读:锂电池pack生产流程图 ... webpack下载安装 ... 锂电池pack生产线视频 ... webpack官网文档 ... 谈谈你对webpack的理解 ... 怎样安装指定版本webpack ... 对于webpack的理解 ... webpack配置参数 ... 锂电池厂pack车间生产视频 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网