cainiaoblog 23.2.348 → 23.2.349
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{app/manual.html → manual.html} +1 -1
- package/package.json +1 -1
- package/CNAME +0 -1
- package/MP_verify_o6dHCK5mIkxNpzvZ.txt +0 -1
- package/README.md +0 -8
- package/about/index.html +0 -55
- package/ads.txt +0 -1
- package/archives/2018/index.html +0 -48
- package/archives/2019/index.html +0 -48
- package/archives/2019/page/2/index.html +0 -48
- package/archives/2020/index.html +0 -48
- package/archives/2021/index.html +0 -48
- package/archives/2022/index.html +0 -48
- package/archives/2023/index.html +0 -48
- package/archives/index.html +0 -48
- package/archives/page/2/index.html +0 -48
- package/archives/page/3/index.html +0 -48
- package/article/10047.html +0 -148
- package/article/10164.html +0 -65
- package/article/10624.html +0 -436
- package/article/10745.html +0 -586
- package/article/11674.html +0 -71
- package/article/11939.html +0 -72
- package/article/12238.html +0 -86
- package/article/1230.html +0 -533
- package/article/13265.html +0 -69
- package/article/13823.html +0 -78
- package/article/14125.html +0 -72
- package/article/14192.html +0 -561
- package/article/14375.html +0 -85
- package/article/14744.html +0 -83
- package/article/14936.html +0 -451
- package/article/1518.html +0 -250
- package/article/15428.html +0 -71
- package/article/15518.html +0 -288
- package/article/15569.html +0 -418
- package/article/1566.html +0 -122
- package/article/16017.html +0 -156
- package/article/16947.html +0 -440
- package/article/17096.html +0 -82
- package/article/17246.html +0 -89
- package/article/17575.html +0 -350
- package/article/179.html +0 -757
- package/article/18039.html +0 -233
- package/article/18071.html +0 -375
- package/article/18142.html +0 -71
- package/article/19909.html +0 -160
- package/article/20014.html +0 -89
- package/article/20021.html +0 -389
- package/article/20037.html +0 -280
- package/article/20056.html +0 -95
- package/article/20093.html +0 -404
- package/article/2021.html +0 -607
- package/article/20459.html +0 -115
- package/article/20613.html +0 -263
- package/article/20635.html +0 -71
- package/article/21317.html +0 -71
- package/article/21320.html +0 -90
- package/article/21782.html +0 -548
- package/article/22230.html +0 -435
- package/article/22237.html +0 -347
- package/article/22398.html +0 -109
- package/article/22422.html +0 -270
- package/article/22565.html +0 -300
- package/article/23046.html +0 -250
- package/article/23083.html +0 -215
- package/article/23195.html +0 -297
- package/article/23301.html +0 -835
- package/article/23589.html +0 -285
- package/article/23655.html +0 -338
- package/article/23864.html +0 -76
- package/article/23914.html +0 -96
- package/article/24169.html +0 -135
- package/article/24581.html +0 -349
- package/article/2475.html +0 -500
- package/article/24826.html +0 -77
- package/article/24924.html +0 -247
- package/article/25164.html +0 -1495
- package/article/25318.html +0 -394
- package/article/25710.html +0 -1129
- package/article/25734.html +0 -83
- package/article/26083.html +0 -174
- package/article/26147.html +0 -283
- package/article/26291.html +0 -110
- package/article/26354.html +0 -71
- package/article/26624.html +0 -145
- package/article/26639.html +0 -298
- package/article/26850.html +0 -138
- package/article/26940.html +0 -258
- package/article/27796.html +0 -190
- package/article/27800.html +0 -161
- package/article/28963.html +0 -159
- package/article/28976.html +0 -247
- package/article/29042.html +0 -72
- package/article/29596.html +0 -81
- package/article/29619.html +0 -183
- package/article/29623.html +0 -329
- package/article/29829.html +0 -205
- package/article/29abbd1c.html +0 -112
- package/article/30215.html +0 -178
- package/article/30552.html +0 -78
- package/article/30818.html +0 -201
- package/article/31330.html +0 -364
- package/article/3154.html +0 -577
- package/article/31695.html +0 -348
- package/article/31826.html +0 -71
- package/article/31843.html +0 -132
- package/article/32280.html +0 -212
- package/article/32431.html +0 -74
- package/article/32443.html +0 -72
- package/article/32732.html +0 -122
- package/article/3286.html +0 -251
- package/article/32960.html +0 -198
- package/article/33713.html +0 -72
- package/article/33899.html +0 -615
- package/article/34351.html +0 -74
- package/article/34372.html +0 -89
- package/article/34410.html +0 -74
- package/article/34431.html +0 -118
- package/article/3447.html +0 -75
- package/article/34474.html +0 -142
- package/article/34871.html +0 -147
- package/article/35397.html +0 -175
- package/article/3544.html +0 -199
- package/article/35503.html +0 -115
- package/article/35624.html +0 -84
- package/article/35697.html +0 -384
- package/article/35863.html +0 -73
- package/article/36037.html +0 -253
- package/article/36118.html +0 -71
- package/article/3621.html +0 -119
- package/article/36251.html +0 -296
- package/article/36642.html +0 -352
- package/article/37102.html +0 -763
- package/article/37336.html +0 -351
- package/article/37351.html +0 -89
- package/article/3760.html +0 -294
- package/article/37749.html +0 -75
- package/article/37789.html +0 -83
- package/article/38005.html +0 -765
- package/article/38009.html +0 -284
- package/article/38269.html +0 -194
- package/article/38344.html +0 -88
- package/article/38359.html +0 -334
- package/article/38423.html +0 -379
- package/article/38530.html +0 -213
- package/article/38743.html +0 -268
- package/article/38753.html +0 -204
- package/article/38881.html +0 -71
- package/article/39087.html +0 -414
- package/article/39309.html +0 -84
- package/article/39486.html +0 -73
- package/article/39637.html +0 -306
- package/article/39839.html +0 -72
- package/article/39937.html +0 -152
- package/article/39970.html +0 -71
- package/article/402.html +0 -559
- package/article/40698.html +0 -71
- package/article/40811.html +0 -71
- package/article/40964.html +0 -462
- package/article/41011.html +0 -322
- package/article/41152.html +0 -78
- package/article/41696.html +0 -71
- package/article/41717.html +0 -281
- package/article/41777.html +0 -149
- package/article/419.html +0 -985
- package/article/4233.html +0 -136
- package/article/4292.html +0 -86
- package/article/43302.html +0 -96
- package/article/43397.html +0 -106
- package/article/43724.html +0 -281
- package/article/43999.html +0 -224
- package/article/44426.html +0 -77
- package/article/44964.html +0 -137
- package/article/45004.html +0 -123
- package/article/4510.html +0 -83
- package/article/45156.html +0 -320
- package/article/45157.html +0 -52
- package/article/45267.html +0 -87
- package/article/45641.html +0 -207
- package/article/45960.html +0 -75
- package/article/46100.html +0 -1262
- package/article/46366.html +0 -74
- package/article/46771.html +0 -96
- package/article/46911.html +0 -517
- package/article/46948.html +0 -137
- package/article/46ee4850.html +0 -349
- package/article/47019.html +0 -84
- package/article/47532.html +0 -94
- package/article/4783.html +0 -429
- package/article/47972.html +0 -72
- package/article/48216.html +0 -127
- package/article/48252.html +0 -185
- package/article/48520.html +0 -74
- package/article/48722.html +0 -75
- package/article/48807.html +0 -99
- package/article/49126.html +0 -323
- package/article/50001.html +0 -88
- package/article/50058.html +0 -151
- package/article/50343.html +0 -410
- package/article/50510.html +0 -82
- package/article/51082.html +0 -98
- package/article/51677.html +0 -111
- package/article/5204.html +0 -1085
- package/article/52500.html +0 -538
- package/article/52689.html +0 -259
- package/article/52877.html +0 -569
- package/article/53125.html +0 -191
- package/article/53428.html +0 -251
- package/article/53524.html +0 -74
- package/article/53698.html +0 -322
- package/article/53803e6.html +0 -93
- package/article/53924.html +0 -291
- package/article/53962.html +0 -253
- package/article/54006.html +0 -71
- package/article/54018.html +0 -88
- package/article/54161.html +0 -83
- package/article/54178.html +0 -69
- package/article/54258.html +0 -327
- package/article/54295.html +0 -214
- package/article/54313.html +0 -1976
- package/article/54351.html +0 -90
- package/article/54604.html +0 -80
- package/article/54632.html +0 -71
- package/article/54912.html +0 -756
- package/article/54918.html +0 -136
- package/article/55119.html +0 -136
- package/article/55756.html +0 -118
- package/article/55769.html +0 -136
- package/article/55870.html +0 -161
- package/article/56139.html +0 -92
- package/article/56557.html +0 -69
- package/article/56604.html +0 -69
- package/article/56816.html +0 -266
- package/article/56926.html +0 -153
- package/article/57747.html +0 -409
- package/article/57965.html +0 -475
- package/article/58816.html +0 -78
- package/article/59059.html +0 -435
- package/article/59095.html +0 -350
- package/article/59349.html +0 -244
- package/article/59402.html +0 -216
- package/article/59448.html +0 -55
- package/article/59870.html +0 -94
- package/article/59877.html +0 -208
- package/article/5dbb6f41.html +0 -86
- package/article/6008.html +0 -75
- package/article/60327.html +0 -126
- package/article/6035.html +0 -76
- package/article/60428.html +0 -71
- package/article/60544.html +0 -128
- package/article/61319.html +0 -95
- package/article/61367.html +0 -93
- package/article/624d1918.html +0 -292
- package/article/62543.html +0 -71
- package/article/62887.html +0 -169
- package/article/63074.html +0 -120
- package/article/63266.html +0 -311
- package/article/63351.html +0 -74
- package/article/63542.html +0 -104
- package/article/63824.html +0 -275
- package/article/64051.html +0 -653
- package/article/64189b69.html +0 -72
- package/article/64354.html +0 -75
- package/article/64869.html +0 -79
- package/article/64923.html +0 -596
- package/article/65128.html +0 -95
- package/article/65295.html +0 -79
- package/article/6888.html +0 -75
- package/article/7065.html +0 -84
- package/article/7455.html +0 -85
- package/article/7a3ef8f.html +0 -315
- package/article/8140.html +0 -188
- package/article/8190.html +0 -85
- package/article/8225.html +0 -78
- package/article/84c9ccd6.html +0 -159
- package/article/8f9a9ae3.html +0 -82
- package/article/9174.html +0 -73
- package/article/9738.html +0 -294
- package/article/9c3c56c.html +0 -682
- package/article/a4145266.html +0 -71
- package/article/bedea419.html +0 -72
- package/article/bf7e7421.html +0 -78
- package/article/c1867fbf.html +0 -103
- package/article/dcb0db28.html +0 -76
- package/article/fc3b727a.html +0 -79
- package/atom.xml +0 -441
- package/baidusitemap.xml +0 -1079
- package/blocks/dns.txt +0 -291
- package/blocks/filter.txt +0 -1068
- package/blocks/script.js +0 -42
- package/categories/CDN/index.html +0 -48
- package/categories/IDE/index.html +0 -48
- package/categories/git/index.html +0 -48
- package/categories/hexo/index.html +0 -48
- package/categories//345/205/254/345/205/261/350/212/202/346/227/245/index.html +0 -48
- package/categories//345/210/206/344/272/253/index.html +0 -48
- package/categories//345/211/215/347/253/257/index.html +0 -48
- package/categories//345/211/215/347/253/257/page/2/index.html +0 -48
- package/categories//345/211/215/347/253/257//346/265/217/350/247/210/345/231/250/index.html +0 -48
- package/categories//345/211/215/347/253/257//346/265/217/350/247/210/345/231/250//347/275/221/347/273/234/345/215/217/350/256/256/index.html +0 -48
- package/categories//345/215/232/345/256/242/index.html +0 -48
- package/categories//345/267/245/345/205/267/index.html +0 -48
- package/categories//345/271/277/345/221/212/350/277/207/346/273/244/index.html +0 -48
- package/categories//345/271/277/345/221/212/350/277/207/346/273/244//345/275/261/350/247/206/347/224/265/350/247/206/345/260/217/350/257/264/346/274/253/347/224/273/350/265/204/350/256/257/351/237/263/344/271/220/index.html +0 -48
- package/categories//345/271/277/345/221/212/350/277/207/346/273/244//350/247/206/351/242/221/347/224/265/350/247/206/345/260/217/350/257/264/346/274/253/347/224/273/350/265/204/350/256/257/351/237/263/344/271/220/index.html +0 -48
- package/categories//346/255/243/345/210/231/index.html +0 -48
- package/categories//346/265/217/350/247/210/345/231/250/index.html +0 -48
- package/categories//347/256/227/346/263/225/index.html +0 -48
- package/categories//350/265/204/350/256/257/index.html +0 -48
- package/categories//350/275/273/346/235/276/344/270/200/345/210/273/index.html +0 -48
- package/cdn/css/font-awesome.min.css +0 -4
- package/cdn/css/grids-responsive-min.css +0 -7
- package/cdn/css/normalize.css +0 -349
- package/cdn/css/pure-min.css +0 -11
- package/cdn/fonts/fontawesome-webfont.eot +0 -0
- package/cdn/fonts/fontawesome-webfont.svg +0 -2671
- package/cdn/fonts/fontawesome-webfont.ttf +0 -0
- package/cdn/fonts/fontawesome-webfont.woff +0 -0
- package/cdn/fonts/fontawesome-webfont.woff2 +0 -0
- package/cdn/js/Valine.min.js +0 -17
- package/cdn/js/canvas-nest.js +0 -1
- package/cdn/js/clipboard.min.js +0 -7
- package/cdn/js/crypto-js.js +0 -25
- package/cdn/js/jquery.min.js +0 -2
- package/css/default.css +0 -1144
- package/css/donate.css +0 -338
- package/css/hbe.style.css +0 -749
- package/css/style.css +0 -2095
- package/donate/index.html +0 -40
- package/google917dcf72f6e5c7f5.html +0 -1
- package/guestbook/index.html +0 -68
- package/hosts/ads.txt +0 -149
- package/hosts/flash.txt +0 -9
- package/hosts/github.txt +0 -15
- package/hosts/google.txt +0 -16936
- package/hosts/winrar.txt +0 -2
- package/img/alipay.svg +0 -46
- package/img/bitcoin.svg +0 -135
- package/img/blog.ico +0 -0
- package/img/blog.png +0 -0
- package/img/gaba.png +0 -0
- package/img/github.svg +0 -1
- package/img/like.svg +0 -1
- package/img/mp-mini.jpg +0 -0
- package/img/mp.png +0 -0
- package/img/paypal.svg +0 -63
- package/img/upy_logo.svg +0 -59
- package/img/wechat.svg +0 -49
- package/index.html +0 -48
- package/jd_root.txt +0 -1
- package/js/codeblock-resizer.js +0 -51
- package/js/dark.js +0 -12
- package/js/donate.js +0 -87
- package/js/fixedPage.js +0 -110
- package/js/gitment.browser.js +0 -3751
- package/js/search.js +0 -86
- package/js/share.js +0 -60
- package/js/smartresize.js +0 -32
- package/js/totop.js +0 -12
- package/kankan/index.html +0 -1323
- package/lib/hbe.js +0 -297
- package/page/10/index.html +0 -49
- package/page/11/index.html +0 -59
- package/page/12/index.html +0 -67
- package/page/13/index.html +0 -63
- package/page/14/index.html +0 -66
- package/page/15/index.html +0 -60
- package/page/16/index.html +0 -60
- package/page/17/index.html +0 -62
- package/page/18/index.html +0 -61
- package/page/19/index.html +0 -58
- package/page/2/index.html +0 -48
- package/page/20/index.html +0 -57
- package/page/21/index.html +0 -61
- package/page/22/index.html +0 -55
- package/page/23/index.html +0 -64
- package/page/24/index.html +0 -60
- package/page/25/index.html +0 -58
- package/page/26/index.html +0 -48
- package/page/27/index.html +0 -58
- package/page/3/index.html +0 -48
- package/page/4/index.html +0 -48
- package/page/5/index.html +0 -51
- package/page/6/index.html +0 -51
- package/page/7/index.html +0 -51
- package/page/8/index.html +0 -53
- package/page/9/index.html +0 -48
- package/randomcall/README.html +0 -1
- package/randomcall/lucker.html +0 -290
- package/randomcall/lucky.png +0 -0
- package/robots.txt +0 -22
- package/search.xml +0 -6728
- package/sitemap.xml +0 -2694
- package/tags//345/216/237/345/210/233/index.html +0 -48
- package/tags//345/250/261/344/271/220/index.html +0 -48
- package/tags//346/211/213/345/206/231/index.html +0 -48
- package/tags//347/226/253/346/203/205/index.html +0 -48
- package/tags//350/275/254/350/275/275/index.html +0 -48
- package/tags//350/275/254/350/275/275/page/2/index.html +0 -48
- package/v.html +0 -22
- /package/{appConfigs/config → config} +0 -0
- /package/{extConfigs/extension.json → extension.json} +0 -0
package/article/36642.html
DELETED
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html><html lang="zh-CN" data-dark><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"><meta content="yes" name="apple-mobile-web-app-capable"><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"><meta content="telephone=no" name="format-detection"><meta name="description" content="前端壹菜鸟,记录工作难题,关注前端知识,收集精彩博文,做技术的搬运工"><meta name="msvalidate.01" content="0FE4D8B3381D3D87088996B886E1E2BD"><title>Webpack多入口文件、热更新等体验 | 前端壹菜鸟</title><link rel="stylesheet" type="text/css" href="//unpkg.com/cainiaoblog@latest/css/style.css"><link rel="stylesheet" type="text/css" href="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/css/style.min.css"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/cainiaoblog@latest/css/style.min.css"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/normalize.css@latest/normalize.min.css"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/purecss@latest/build/pure-min.min.css"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/purecss@latest/build/grids-responsive-min.css"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"><link rel="icon" mask="" sizes="any" href="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/img/blog.ico"><link rel="Shortcut Icon" type="image/x-icon" href="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/img/blog.ico"><link rel="apple-touch-icon" href="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/img/blog.png"><link rel="apple-touch-icon-precomposed" href="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/img/blog.png"><link rel="alternate" type="application/atom+xml" href="/atom.xml"><script type="text/javascript" src="//cdn.jsdelivr.net/npm/jquery@latest/dist/jquery.min.js"></script><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-8385136408348258"></script><script src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" async></script><script>(function(){
|
|
2
|
-
var bp = document.createElement('script');
|
|
3
|
-
var curProtocol = window.location.protocol.split(':')[0];
|
|
4
|
-
if (curProtocol === 'https'){
|
|
5
|
-
bp.src = 'https://zz.bdstatic.com/linksubmit/push.js';
|
|
6
|
-
}
|
|
7
|
-
else{
|
|
8
|
-
bp.src = 'http://push.zhanzhang.baidu.com/push.js';
|
|
9
|
-
}
|
|
10
|
-
var s = document.getElementsByTagName("script")[0];
|
|
11
|
-
s.parentNode.insertBefore(bp, s);
|
|
12
|
-
})();
|
|
13
|
-
</script><script>(function(){
|
|
14
|
-
var src = 'https://jspassport.ssl.qhimg.com/11.0.1.js?d182b3f28525f2db83acfaaf6e696dba';
|
|
15
|
-
document.write('<script src="' + src + '" id="sozz"><\/script>');
|
|
16
|
-
})();
|
|
17
|
-
</script><script>var _hmt=_hmt||[];(function(){var hm=document.createElement("script");hm.src='https://hm.baidu.com/hm.js?011f0b44e8452bfa57fbfa23c5fe7683';var s=document.getElementsByTagName("script")[0];s.parentNode.insertBefore(hm, s);})();
|
|
18
|
-
</script><script async src="https://www.googletagmanager.com/gtag/js?id=UA-150860401-1"></script><script>window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);};gtag('js',new Date());gtag('config','UA-150860401-1');
|
|
19
|
-
</script><script type="text/javascript" src="//cdn.jsdelivr.net/npm/cainiaoblog@latest/js/fixedPage.min.js"></script><meta name="generator" content="Hexo 6.3.0"></head><body><div class="body_container"><div id="header"><div class="site-name"><a id="logo" href="/.">前端壹菜鸟</a><p class="description">关注前端知识,收集精彩博文,做技术的搬运工</p></div><div id="nav-menu"><a class="current" href="/." target="_self"><i class="fa fa-home"> 首页</i></a><a href="/archives/" target="_self"><i class="fa fa-archive"> 归档</i></a><a href="/guestbook/" target="_self"><i class="fa fa-comments"> 留言</i></a><a href="/about/" target="_self"><i class="fa fa-user"> 关于</i></a><a href="https://laonongmin.online/" target="_target"><i class="fa fa-group"> 看看</i></a><a href="https://love.xuehuayu.cn/" target="_target"><i class="fa fa-heart"> LOVE</i></a></div></div><div class="pure-g" id="layout"><div class="pure-u-1 pure-u-md-3-4"><div class="content_container"><div class="post"><h1 class="post-title c-post">Webpack多入口文件、热更新等体验</h1><div class="post-meta"><span class="date">2019-12-12</span><span> | </span><span class="tag"><a href="/tags/%E8%BD%AC%E8%BD%BD/">转载 </a></span><span> | </span><span class="category"><a href="/categories/%E5%89%8D%E7%AB%AF/">前端 </a></span><span id="busuanzi_container_page_pv"> | <span id="busuanzi_value_page_pv"><i class="fa fa-spinner"></i></span><span> 阅读</span></span><span class="post-time"><span class="post-meta-item-text"> | </span><span class="post-meta-item-icon"><i class="fa fa-keyboard-o"></i><span class="post-count"> 2k</span><span class="post-meta-item-text"> 字</span></span></span><span class="post-time"> | <span class="post-meta-item-icon"><i class="fa fa-hourglass-half"></i><span class="post-count"> 8</span><span class="post-meta-item-text"> 分钟</span></span></span></div><a class="disqus-comment-count" href="/article/36642.html#vcomment"><span class="waline-comment-count" data-path="/article/36642.html"></span><span> 条评论</span></a><div class="post-content"><p><code>原文地址:https://www.cnblogs.com/cqhaibin/p/6581308.html</code></p>
|
|
20
|
-
<p>Webpack现今流行的前端打包工具,今儿本人也来分享下自己学习体验。</p>
|
|
21
|
-
<span id="more"></span>
|
|
22
|
-
|
|
23
|
-
<h2 id="一、html-webpack-plugin"><a href="#一、html-webpack-plugin" class="headerlink" title="一、html-webpack-plugin"></a>一、html-webpack-plugin</h2><p>实现html模板文件的解析与生成</p>
|
|
24
|
-
<ul>
|
|
25
|
-
<li>在plugins加入HtmlWebpackPlugin的配置,如果是多个入口文件,则需要对应加入多个HtmlWebpackPlugin功能。</li>
|
|
26
|
-
</ul>
|
|
27
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
28
|
-
<pre><code>var HtmlWebpackPlugin = require('html-webpack-plugin');
|
|
29
|
-
entry:{
|
|
30
|
-
ma: './src/ma', /** .:必须要,表示运行时的根目录,否则找不到文件,且不报错 */
|
|
31
|
-
mb: './src/mb'
|
|
32
|
-
},
|
|
33
|
-
output: {
|
|
34
|
-
path: './dist',
|
|
35
|
-
filename: '[name].js'
|
|
36
|
-
},
|
|
37
|
-
plugins: [
|
|
38
|
-
new HtmlWebpackPlugin({ //可以模板,直接引用files对象,是webpack中state对象
|
|
39
|
-
title: '模板A',
|
|
40
|
-
chunks: ['ma']
|
|
41
|
-
}),
|
|
42
|
-
new HtmlWebpackPlugin({
|
|
43
|
-
filename: 'mb.html',
|
|
44
|
-
title: '模板B',
|
|
45
|
-
chunks: ['mb']
|
|
46
|
-
})
|
|
47
|
-
]
|
|
48
|
-
</code></pre>
|
|
49
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
50
|
-
<p>如上代码所示:</p>
|
|
51
|
-
<ul>
|
|
52
|
-
<li><p>两个入口文件,ma与mb,所以配置了两个HtmlWebpackPlugin实例</p>
|
|
53
|
-
</li>
|
|
54
|
-
<li><p>HtmlWebpackPlugin实例配置项:</p>
|
|
55
|
-
</li>
|
|
56
|
-
<li><p>title:模板title</p>
|
|
57
|
-
</li>
|
|
58
|
-
<li><p>filename:输出的html文件名称</p>
|
|
59
|
-
</li>
|
|
60
|
-
<li><p>chunks:包含的文件,可以entry和其他模块chunk的模块,插件导入到 模板时 没有排序,但都是。</p>
|
|
61
|
-
</li>
|
|
62
|
-
<li><p>excludeChunks:被排除的模块</p>
|
|
63
|
-
</li>
|
|
64
|
-
<li><p>chunksSortMode:添加到页面时模块的排序 none|default|function</p>
|
|
65
|
-
</li>
|
|
66
|
-
<li><p>template:模板文件路径所在位置</p>
|
|
67
|
-
</li>
|
|
68
|
-
<li><p>templateContent:一个函数,使用编程语言创建模板</p>
|
|
69
|
-
</li>
|
|
70
|
-
<li><p>inject:js插入位置:body, head</p>
|
|
71
|
-
</li>
|
|
72
|
-
<li><p>模板可以访问的配置项</p>
|
|
73
|
-
</li>
|
|
74
|
-
<li><p>files:为webpack的stats项,可以在模板文件中使用或者</p>
|
|
75
|
-
</li>
|
|
76
|
-
<li><p>webpackConfig:webpackConfig的配置项</p>
|
|
77
|
-
</li>
|
|
78
|
-
<li><p>options:在模板文件中可以获取的webpack配置项。</p>
|
|
79
|
-
</li>
|
|
80
|
-
<li><p>HtmlWebpackPlugin的事件使用:</p>
|
|
81
|
-
</li>
|
|
82
|
-
</ul>
|
|
83
|
-
<p>事件名称时机同步/异步html-webapck-plugin-before-html-generation生成htmlPluginData之前触发asynchtml-webpack-plugin-before-html-processinghtmlPluginData插入到html模板之前触发asynchtml-webpack-plugin-alert-asset-tags验证资源,以及为资源做标记时触发asynchtml-webpack-plugin-after-html-processinghtmlPluginData插入到html模板之后触发asynchtml-webpack-plugin-after-emit生成html目标文件后触发asynchtml-webpack-plugin-alert-chunks验证资源块信息sync</p>
|
|
84
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
85
|
-
<pre><code>var compile = webpack(config);
|
|
86
|
-
compile.plugin('compilation', function( compilation, callbak) {
|
|
87
|
-
console.log('compilation');
|
|
88
|
-
compilation.plugin('html-webpack-plugin-before-html-processing', function (htmlPluginData, callbak) {
|
|
89
|
-
console.log(htmlPluginData)
|
|
90
|
-
callbak()
|
|
91
|
-
})
|
|
92
|
-
})
|
|
93
|
-
</code></pre>
|
|
94
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
95
|
-
<p>注意:</p>
|
|
96
|
-
<ul>
|
|
97
|
-
<li>必须要监测compile的compilation事件</li>
|
|
98
|
-
<li>然后在回调compilation事件时,对compilation参数进行plugin的事件的注册 。</li>
|
|
99
|
-
</ul>
|
|
100
|
-
<h2 id="二、webpack-optimize-CommonsChunkPlugin"><a href="#二、webpack-optimize-CommonsChunkPlugin" class="headerlink" title="二、webpack.optimize.CommonsChunkPlugin"></a>二、webpack.optimize.CommonsChunkPlugin</h2><p>抽取公共模块为一个独立的文件,一是指定的多个模块打成一个包;二是在指定的chunks中抽取公共模块<br>参数名称说明name可以是字符串,或者是数组,如果指定为entry中一个名称,则只产生此vendor,也可以是一个入口文件列表filename输出文件名minChunks单独文件最小引用数,如设置3,表示同一个模块只有被3个以外的页面引用时才打包children返回,把第三方的vendor包,分解到业务包中chunks数组,从指定的源模块提供共用vendor包</p>
|
|
101
|
-
<ol>
|
|
102
|
-
<li>vendor打成一个包:</li>
|
|
103
|
-
</ol>
|
|
104
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
105
|
-
<pre><code>entry:{
|
|
106
|
-
vendor: ['./src/vendor-jquery', 'bootstrap']
|
|
107
|
-
},
|
|
108
|
-
plugins: [
|
|
109
|
-
new webpack.optimize.CommonsChunkPlugin({
|
|
110
|
-
name: 'vendor'
|
|
111
|
-
})
|
|
112
|
-
]
|
|
113
|
-
</code></pre>
|
|
114
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
115
|
-
<ol start="2">
|
|
116
|
-
<li>CommonsChunkPlugin正确的引入方式</li>
|
|
117
|
-
</ol>
|
|
118
|
-
<p><img src="https://9p23sg-ch3302.files.1drv.com/y3mjgANdsNvV7blpZUyooaJMxdELr937ptGJpapyuiE6J4HfX9oErx8MCJXZi4Mc_SJngf6ExoaEY55yDdISrOCfgFkP7dj1HRg49TXt7jq3N9Y7GjHV72iov0dAN5FSZllFwCXuZj9dH8jni3ZNzHHB6-oBcfnpVtNOZkjou-OSJY?width=664&height=699&cropmode=none" alt="xuehuayu.cn"></p>
|
|
119
|
-
<ol start="3">
|
|
120
|
-
<li>用manifest实现js库的增量更新</li>
|
|
121
|
-
</ol>
|
|
122
|
-
<p>如果输出文件名包含hash值,需要引入以下两个插件:</p>
|
|
123
|
-
<ul>
|
|
124
|
-
<li><p>HashedModuleIdsPlugin:算hash值</p>
|
|
125
|
-
</li>
|
|
126
|
-
<li><p>利用CommonsChunkPlugin配置,他是manifest配置模块所有的依赖抽象,如果mainfest不更新,则html会找不到js文件。</p>
|
|
127
|
-
<p> new webpack.optimize.CommonsChunkPlugin({<br>name: ‘manifest’,<br>chunks: [‘vendor’]<br> })</p>
|
|
128
|
-
</li>
|
|
129
|
-
</ul>
|
|
130
|
-
<h2 id="三、webpack-样式打包"><a href="#三、webpack-样式打包" class="headerlink" title="三、webpack 样式打包"></a>三、webpack 样式打包</h2><p>这其中就包含对css文件、静态资源以及css所包含的资源文件等处理。</p>
|
|
131
|
-
<ul>
|
|
132
|
-
<li>css-loader:解析css代码</li>
|
|
133
|
-
<li>style-loader:css代码写入到js文件中</li>
|
|
134
|
-
<li>配置代码如下:</li>
|
|
135
|
-
</ul>
|
|
136
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
137
|
-
<pre><code>loaders:[
|
|
138
|
-
{
|
|
139
|
-
test:/\.css$/, /*不能加引号*/
|
|
140
|
-
loader: 'style-loader!css-loader'
|
|
141
|
-
}
|
|
142
|
-
]
|
|
143
|
-
</code></pre>
|
|
144
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
145
|
-
<p>注意:test后面不能加引号,因这个是正则式</p>
|
|
146
|
-
<h3 id="1-样式文件单独存在,但不能处理静态资源"><a href="#1-样式文件单独存在,但不能处理静态资源" class="headerlink" title="1. 样式文件单独存在,但不能处理静态资源"></a>1. 样式文件单独存在,但不能处理静态资源</h3><p>extract-text-webpack-plugin:抽取样式为单独的文件</p>
|
|
147
|
-
<ul>
|
|
148
|
-
<li><p>参数配置说明</p>
|
|
149
|
-
</li>
|
|
150
|
-
<li><p>ExtractTextPlugin.extract(arg1,arg2,arg3)</p>
|
|
151
|
-
</li>
|
|
152
|
-
<li><p>arg1: 可选参数,传入一个loader,当css没有被抽取的时候可以使用该loader</p>
|
|
153
|
-
</li>
|
|
154
|
-
<li><p>arg2:必填参数,用于编译解析css文件的loader</p>
|
|
155
|
-
</li>
|
|
156
|
-
<li><p>arg3:额外选,暂只可传publicPath,表示当前loader的路径</p>
|
|
157
|
-
</li>
|
|
158
|
-
<li><p>ExtactTextPlugin在Plugins中构造时,至少需要传入一个文件名参数</p>
|
|
159
|
-
</li>
|
|
160
|
-
</ul>
|
|
161
|
-
<p>filename文件名,可以指定一个固定的,也可用[name].[id].[contenthash]来指定文件名,[name]:与entry中的chunk名称一致,[id]:将entry的chunk的id一致;[contenthash]:根据内容生成hash值<br>参数名称说明id可先参数,插件实例的惟一标识,缺省会自动生成<br>filename<br>文件名,可以指定一个固定的,也可用[name].[id].[contenthash]来指定文件名,[name]:与entry中的chunk名称一致,[id]:将entry的chunk的id一致;[contenthash]:根据内容生成hash值optionsallchunks:是否将所有额外的chunk都压缩一个文件;disable:禁止使用此插件<br>代码如下(webpack2.x):</p>
|
|
162
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
163
|
-
<pre><code>var ExtractTextPlugin = require('extract-text-webpack-plugin');
|
|
164
|
-
module:{
|
|
165
|
-
loaders:[
|
|
166
|
-
{
|
|
167
|
-
test:/\.css$/,
|
|
168
|
-
loader: ExtractTextPlugin.extract({
|
|
169
|
-
fallback: 'style-loader',
|
|
170
|
-
use: 'css-loader'
|
|
171
|
-
})
|
|
172
|
-
}
|
|
173
|
-
]
|
|
174
|
-
},
|
|
175
|
-
plugins: [
|
|
176
|
-
new ExtractTextPlugin('[name].css')
|
|
177
|
-
]
|
|
178
|
-
</code></pre>
|
|
179
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
180
|
-
<h3 id="2-file-loader实现css中图片或web字体文件打包"><a href="#2-file-loader实现css中图片或web字体文件打包" class="headerlink" title="2. file-loader实现css中图片或web字体文件打包"></a>2. file-loader实现css中图片或web字体文件打包</h3><p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
181
|
-
<pre><code>var ExtractTextPlugin = require('extract-text-webpack-plugin');
|
|
182
|
-
module:{
|
|
183
|
-
loaders:[
|
|
184
|
-
{
|
|
185
|
-
test:/\.css$/,
|
|
186
|
-
loader: ExtractTextPlugin.extract({
|
|
187
|
-
fallback: 'style-loader',
|
|
188
|
-
use: ['css-loader','postcss-loader']
|
|
189
|
-
})
|
|
190
|
-
},
|
|
191
|
-
{
|
|
192
|
-
test: /\.(eot|svg|ttf|woff|woff2)$/,
|
|
193
|
-
loader: 'file-loader?name=fonts/[name].[ext]'
|
|
194
|
-
}
|
|
195
|
-
]
|
|
196
|
-
}
|
|
197
|
-
</code></pre>
|
|
198
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
199
|
-
<p>参数说明:<br>参数名称说明name配置输出文件名,例如:name=[name].[hash].[ext]name子节点配置说明[ext]扩展名[name]文件名[path]相对于上下文的路径[hash]hash值输出配置参数publicPath公共资源路径(也可以说是静态资源,就是不参与打包的编译过程的资源)outputPath输出资源路径(也可以说是静态资源,就是不参与打包的编译过程的资源)<br>publicPath和outputPath使用示例代码:</p>
|
|
200
|
-
<pre><code>use: "file-loader?name=[name].[ext]&publicPath=assets/foo/&outputPath=app/images/"
|
|
201
|
-
</code></pre>
|
|
202
|
-
<h3 id="3-postcss实现浏览器兼容"><a href="#3-postcss实现浏览器兼容" class="headerlink" title="3. postcss实现浏览器兼容"></a>3. postcss实现浏览器兼容</h3><p>代码如下(webpack2.x):</p>
|
|
203
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
204
|
-
<pre><code>var autoprefixer = require('autoprefixer');
|
|
205
|
-
module:{
|
|
206
|
-
loaders:[
|
|
207
|
-
{
|
|
208
|
-
test:/\.css$/,
|
|
209
|
-
loader: ExtractTextPlugin.extract({
|
|
210
|
-
use: ['css-loader','postcss-loader']
|
|
211
|
-
})
|
|
212
|
-
}
|
|
213
|
-
]
|
|
214
|
-
},
|
|
215
|
-
plugins: [
|
|
216
|
-
new webpack.LoaderOptionsPlugin({
|
|
217
|
-
options:{
|
|
218
|
-
postcss:[autoprefixer()]
|
|
219
|
-
}
|
|
220
|
-
})
|
|
221
|
-
]
|
|
222
|
-
</code></pre>
|
|
223
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
224
|
-
<ul>
|
|
225
|
-
<li>webpack2.x不支持自定义配置节点,需要用webpack.LoaderOptionsPlugin加入自定义的插件配置节点。</li>
|
|
226
|
-
<li>autoprefixer:一个postcss的插件,用于css3的兼容前端处理</li>
|
|
227
|
-
<li><ul>
|
|
228
|
-
<li>browsers:配置浏览器的版本,如:browsers:[‘last 2 versions’]</li>
|
|
229
|
-
</ul>
|
|
230
|
-
</li>
|
|
231
|
-
</ul>
|
|
232
|
-
<h2 id="四、热更新"><a href="#四、热更新" class="headerlink" title="四、热更新"></a>四、热更新</h2><ul>
|
|
233
|
-
<li>安装 webpack-dev-server</li>
|
|
234
|
-
<li>热更新的概念</li>
|
|
235
|
-
</ul>
|
|
236
|
-
<p>利用websocket实现,websocket-server识别到html、css和js的改变,就向websocket-client发送一个消息,websocket-client判断如果是html和css就操作dom,实现局部刷新,如果是js就整体刷新。</p>
|
|
237
|
-
<ul>
|
|
238
|
-
<li>配置:</li>
|
|
239
|
-
</ul>
|
|
240
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
241
|
-
<pre><code>var config = require('./webpack.base.conf');
|
|
242
|
-
var webpack = require("webpack");
|
|
243
|
-
var WebpackDevServer = require('webpack-dev-server');
|
|
244
|
-
var compile = webpack(config);
|
|
245
|
-
compile.plugin('compilation', function( compilation, callbak) {
|
|
246
|
-
compilation.plugin('html-webpack-plugin-before-html-processing', function (htmlPluginData, callbak) {
|
|
247
|
-
callbak()
|
|
248
|
-
})
|
|
249
|
-
})
|
|
250
|
-
var isProc = true;
|
|
251
|
-
if(isProc){
|
|
252
|
-
compile.run(function(err,state){
|
|
253
|
-
console.log(err);
|
|
254
|
-
})
|
|
255
|
-
}else{
|
|
256
|
-
var server = new WebpackDevServer(compile,{
|
|
257
|
-
contentBase: './build',
|
|
258
|
-
hot: true,
|
|
259
|
-
inline: true, /*无效*/
|
|
260
|
-
historyApiFallback: true
|
|
261
|
-
});
|
|
262
|
-
server.listen(8080);
|
|
263
|
-
}
|
|
264
|
-
</code></pre>
|
|
265
|
-
<p><a href="javascript:void(0);"><img src="//common.cnblogs.com/images/copycode.gif" alt="复制代码"></a></p>
|
|
266
|
-
<p>说明:</p>
|
|
267
|
-
<ul>
|
|
268
|
-
<li><p>hot:启动热更新</p>
|
|
269
|
-
</li>
|
|
270
|
-
<li><p>inline:是不会自动刷新网页的,因为此参数只能在cli环境下用</p>
|
|
271
|
-
</li>
|
|
272
|
-
<li><p>在cli下实现页面自动刷新</p>
|
|
273
|
-
<p> webapck-dev-server –hot –inline –config=配置文件</p>
|
|
274
|
-
</li>
|
|
275
|
-
</ul>
|
|
276
|
-
<p>无–inline时,只能在iframe模式下自动刷新:<code>http://localhost:8080/webpack-dev-server/index.html</code><br>有–inline时,可以直接访问<code>[http://localhost:8080/index.html](http://localhost:8080/index.html)</code>进行自动刷新</p>
|
|
277
|
-
<h2 id="五、cross-env"><a href="#五、cross-env" class="headerlink" title="五、cross-env"></a>五、cross-env</h2><p>实现环境变量的定义</p>
|
|
278
|
-
<pre><code>"prod": "cross-env NODE_ENV=prod node ./build/dev-server.js",
|
|
279
|
-
"dev": "cross-env NODE_ENV=dev node ./build/dev-server.js"
|
|
280
|
-
</code></pre>
|
|
281
|
-
<h2 id="六、示例代码结构说明"><a href="#六、示例代码结构说明" class="headerlink" title="六、示例代码结构说明"></a>六、示例代码结构说明</h2><p>前五节说了这么多,也许让你听得云里雾里的。没有代码来说明程序是多么枯燥啊(声明:此代码还包含后一章节的单元测试和e2e测试的配置)。代码结构图以及源码<a target="_blank" rel="noopener" href="http://files.cnblogs.com/files/cqhaibin/webpack-demo.rar">下载地址</a>:</p>
|
|
282
|
-
<p><img src="https://icsawa-ch3302.files.1drv.com/y3mfFN01GeMJRnLQD-sVMRHRZEqD3HvcrE2_hDxN7DEcg4bL6ej4ZOgPEABeBgMksdsxOtkSij4fHmJBgx6bpdUiTlK-wKiN8GP9tiiYzgCzIEEtvr19rnlqUd2MdoqjgqerUV6sCaf1p5BXc6w6Q1tOrgt4SY2mpn9lTKcCeXUKjg?width=270&height=562&cropmode=none" alt="xuehuayu.cn"></p>
|
|
283
|
-
<ul>
|
|
284
|
-
<li><p>build:打包配置文件</p>
|
|
285
|
-
</li>
|
|
286
|
-
<li><p>dev-server.js:打包运行入口</p>
|
|
287
|
-
</li>
|
|
288
|
-
<li><p>webpack.base.conf.js:打包plugins节点的配置</p>
|
|
289
|
-
</li>
|
|
290
|
-
<li><p>webpack.core.conf.js:打包module以及entry的基本配置</p>
|
|
291
|
-
</li>
|
|
292
|
-
<li><p>src:源码目录</p>
|
|
293
|
-
</li>
|
|
294
|
-
<li><p>test:测试目录</p>
|
|
295
|
-
</li>
|
|
296
|
-
<li><p>e2e:点到点测试</p>
|
|
297
|
-
</li>
|
|
298
|
-
<li><p>unit:单元测试</p>
|
|
299
|
-
</li>
|
|
300
|
-
<li><p>mocks:mockjs模拟数据</p>
|
|
301
|
-
</li>
|
|
302
|
-
</ul>
|
|
303
|
-
</div><div><ul class="post-copyright"><li class="post-copyright-author"><strong>本文作者:</strong>雪花雨</li><li class="post-copyright-link"><strong>本文链接:</strong><a href="/article/36642.html">https://xuehuayu.cn/article/36642.html</a></li><li class="post-copyright-license"><strong>版权声明:</strong>① 标为原创的文章为博主原创,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接。② 转载文章来自网络,已标明出处,<a href="mailto:cainiaoblog@126.com">侵删</a>。</li></ul></div><br><div class="tags"><a href="/tags/%E8%BD%AC%E8%BD%BD/">转载</a></div><div class="post-nav"><a class="pre" href="/article/20056.html">webpack打包之后js文件引用顺序错乱,vendor顺序错误</a><a class="next" href="/article/53125.html">正则大全</a></div><div id="vcomment"></div><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@waline/client@v2/dist/waline.min.css"><script src="//cdn.jsdelivr.net/npm/@waline/client@v2/dist/waline.js"></script><script>const origin = window.location.origin
|
|
304
|
-
const serverURL = origin.includes('cainiaoblog') ? 'https://cmts.cainiaoblog.cn' : 'https://cmts.xuehuayu.cn'
|
|
305
|
-
const locale = {
|
|
306
|
-
placeholder: '请正确填写昵称和邮箱,方便接收回复通知~',
|
|
307
|
-
sofa: '沙发空缺中,还不快抢~',
|
|
308
|
-
};
|
|
309
|
-
Waline.init({
|
|
310
|
-
el: '#vcomment',
|
|
311
|
-
serverURL: serverURL,
|
|
312
|
-
pageSize: '20',
|
|
313
|
-
visitor: true, // 阅读量统计
|
|
314
|
-
requiredMeta: ['nick', 'mail'],
|
|
315
|
-
emoji: [
|
|
316
|
-
'https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/weibo',
|
|
317
|
-
'https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/qq',
|
|
318
|
-
'https://cdn.jsdelivr.net/gh/walinejs/emojis@1.0.0/tw-emoji',
|
|
319
|
-
],
|
|
320
|
-
locale,
|
|
321
|
-
pageview: true
|
|
322
|
-
})
|
|
323
|
-
</script></div></div></div><div class="pure-u-1 pure-u-md-1-4 fixed-search hidden_mid_and_down"><div id="sidebar"><script type="text/javascript" src="//cdn.jsdelivr.net/npm/cainiaoblog@latest/js/search.min.js"></script><div class="widget"><div class="widget-search"><input class="search" type="radio" name="search" value="baidu" id="baidu" checked="checked"/><label class="label" for="baidu" title="百度全站搜索">百度</label><input class="search" type="radio" name="search" value="google" id="google"/><label class="label" for="google" title="谷歌全站搜索">谷歌</label><input class="search" type="radio" name="search" value="self" id="self"/><label class="label" for="self" title="使用站内搜索">站内</label></div><div class="widget" id="search"><form class="search-form" action="//www.baidu.com/baidu" method="get" accept-charset="utf-8" target="_blank"><input type="search" name="word" maxlength="30" placeholder="百度全站搜索"/><input type="hidden" name="si" value="xuehuayu.cn"/><input type="hidden" name="cl" value="3"/><input type="hidden" name="ct" value="2097152"/><input type="hidden" name="s" value="on"/><input class="search-submit" type="submit" value=""/></form></div></div><script>$('input[type=radio][name=search]').change(function() {
|
|
324
|
-
var val = $(this).val()
|
|
325
|
-
var self = '<div class="search-form"><input id="local-search-input" placeholder="站内搜索,首次慢" type="search" name="q" results="0"><input class="search-submit" type="submit" value=""/><div id="local-search-result"></div></div>'
|
|
326
|
-
var google = '<form class="search-form" action="//www.google.com/search" method="get" accept-charset="utf-8" target="_blank"><input type="search" name="q" maxlength="30" placeholder="谷歌全站搜索"><input type="hidden" name="sitesearch" value="xuehuayu.cn"><input class="search-submit" type="submit" value=""/></form>'
|
|
327
|
-
var baidu = '<form class="search-form" action="//www.baidu.com/baidu" method="get" accept-charset="utf-8" target="_blank"><input type="search" name="word" maxlength="30" placeholder="百度全站搜索"><input type="hidden" name="si" value="xuehuayu.cn"><input type="hidden" name="cl" value="3"><input type="hidden" name="ct" value="2097152"><input type="hidden" name="s" value="on"><input class="search-submit" type="submit" value=""/></form>'
|
|
328
|
-
|
|
329
|
-
if (val === 'self') {
|
|
330
|
-
$('#search').html(self)
|
|
331
|
-
var search_path = 'search.xml';
|
|
332
|
-
if (search_path.length == 0) {
|
|
333
|
-
search_path = 'search.xml';
|
|
334
|
-
}
|
|
335
|
-
var path = 'https://cdn.staticaly.com/gh/npljy/npljy.github.io/main/' + search_path;
|
|
336
|
-
searchFunc(path, 'local-search-input', 'local-search-result');
|
|
337
|
-
} else if (val === 'baidu') {
|
|
338
|
-
$('#search').html(baidu)
|
|
339
|
-
} else if (val === 'google') {
|
|
340
|
-
$('#search').html(google)
|
|
341
|
-
}
|
|
342
|
-
})</script><div class="widget widget-wxmp"><img alt="微信公众号" width="100%" src="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/img/mp-mini.jpg"/></div><div class="widget widget-categories"><div class="widget-title"><i class="fa fa-folder-o"> 分类</i></div><ul class="category-list"><li class="category-list-item"><a class="category-list-link" href="/categories/CDN/">CDN</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/IDE/">IDE</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/git/">git</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/hexo/">hexo</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%85%AC%E5%85%B1%E8%8A%82%E6%97%A5/">公共节日</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%88%86%E4%BA%AB/">分享</a><span class="category-list-count">29</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%89%8D%E7%AB%AF/">前端</a><span class="category-list-count">190</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%89%8D%E7%AB%AF/%E6%B5%8F%E8%A7%88%E5%99%A8/">浏览器</a><span class="category-list-count">1</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%89%8D%E7%AB%AF/%E6%B5%8F%E8%A7%88%E5%99%A8/%E7%BD%91%E7%BB%9C%E5%8D%8F%E8%AE%AE/">网络协议</a><span class="category-list-count">1</span></li></ul></li></ul></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%8D%9A%E5%AE%A2/">博客</a><span class="category-list-count">3</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%B7%A5%E5%85%B7/">工具</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%B9%BF%E5%91%8A%E8%BF%87%E6%BB%A4/">广告过滤</a><span class="category-list-count">8</span><ul class="category-list-child"><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%B9%BF%E5%91%8A%E8%BF%87%E6%BB%A4/%E5%BD%B1%E8%A7%86%E7%94%B5%E8%A7%86%E5%B0%8F%E8%AF%B4%E6%BC%AB%E7%94%BB%E8%B5%84%E8%AE%AF%E9%9F%B3%E4%B9%90/">影视电视小说漫画资讯音乐</a><span class="category-list-count">1</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E5%B9%BF%E5%91%8A%E8%BF%87%E6%BB%A4/%E8%A7%86%E9%A2%91%E7%94%B5%E8%A7%86%E5%B0%8F%E8%AF%B4%E6%BC%AB%E7%94%BB%E8%B5%84%E8%AE%AF%E9%9F%B3%E4%B9%90/">视频电视小说漫画资讯音乐</a><span class="category-list-count">1</span></li></ul></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E6%AD%A3%E5%88%99/">正则</a><span class="category-list-count">5</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E6%B5%8F%E8%A7%88%E5%99%A8/">浏览器</a><span class="category-list-count">5</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E7%AE%97%E6%B3%95/">算法</a><span class="category-list-count">2</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E8%B5%84%E8%AE%AF/">资讯</a><span class="category-list-count">16</span></li><li class="category-list-item"><a class="category-list-link" href="/categories/%E8%BD%BB%E6%9D%BE%E4%B8%80%E5%88%BB/">轻松一刻</a><span class="category-list-count">1</span></li></ul></div><div class="widget widget-tags"><div class="widget-title"><i class="fa fa-star-o"> 标签</i></div><div class="tagcloud"><a href="/tags/%E5%8E%9F%E5%88%9B/" style="font-size: 15px;">原创</a> <a href="/tags/%E8%BD%AC%E8%BD%BD/" style="font-size: 15px;">转载</a> <a href="/tags/%E6%89%8B%E5%86%99/" style="font-size: 15px;">手写</a> <a href="/tags/%E7%96%AB%E6%83%85/" style="font-size: 15px;">疫情</a> <a href="/tags/%E5%A8%B1%E4%B9%90/" style="font-size: 15px;">娱乐</a></div></div><div class="widget widget-recent-posts"><div class="widget-title"><i class="fa fa-file-o"> 最近文章</i></div><ul class="post-list"><li class="post-list-item"><a class="post-list-link" href="/article/9c3c56c.html">vue、react、webpack、babel</a></li><li class="post-list-item"><a class="post-list-link" href="/article/84c9ccd6.html">精读《SolidJS》</a></li><li class="post-list-item"><a class="post-list-link" href="/article/53803e6.html">git提交注释规范</a></li><li class="post-list-item"><a class="post-list-link" href="/article/a4145266.html">前端数组拍平flat一行代码</a></li><li class="post-list-item"><a class="post-list-link" href="/article/bedea419.html">一道前端this面试题</a></li><li class="post-list-item"><a class="post-list-link" href="/article/bf7e7421.html">git多账号配置</a></li></ul></div><div class="widget widget-links"><div class="widget-title"><i class="fa fa-external-link"> 友情链接</i></div><ul></ul><a href="https://github.com/npljy?utm_source=xuehuayu.cn" title="GitHub" target="_blank">GitHub</a><ul></ul><a href="https://laonongmin.online?utm_source=xuehuayu.cn" title="看看" target="_blank">看看</a><ul></ul><a href="https://cainiaoblog.cn?utm_source=xuehuayu.cn" title="菜鸟博客" target="_blank">菜鸟博客</a><ul></ul><a href="mailto:cainiaoblog@126.com" title="友链联系" target="_blank">友链联系</a></div></div></div><div class="pure-u-1 pure-u-md-3-4"><div id="footer"><div class="flex-block justify-center align-center flex-wrap"><a class="gxba-link" id="gxba" rel="nofollow" target="_blank" href="http://beian.miit.gov.cn/">京ICP备20007647号-2</a><a class="gaba-link" id="gaba-link" rel="nofollow" target="_blank" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802031264"><img class="nofancybox" src="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/img/gaba.png" alt=""/><span id="gaba">京公网安备 11010802031264号</span><span style="padding-right: 10px;"></span></a><span>Copyright © 2023 </span><a href="/." rel="nofollow">前端壹菜鸟. </a><script>(function(){
|
|
343
|
-
var cnb =window.location.origin.indexOf('cainiaoblog') !==-1
|
|
344
|
-
if (cnb) {
|
|
345
|
-
var gxba =document.getElementById('gxba')
|
|
346
|
-
var gaba =document.getElementById('gaba')
|
|
347
|
-
var gabaLink =document.getElementById('gaba-link')
|
|
348
|
-
gxba.innerText ='京ICP备20007647号-1'
|
|
349
|
-
gaba.innerText ='京公网安备 11010802031254号'
|
|
350
|
-
gabaLink.setAttribute('href','http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=11010802031254')
|
|
351
|
-
}
|
|
352
|
-
})()</script></div><div class="flex-block justify-center align-center flex-wrap"><a rel="nofollow" target="_blank" href="https://v6.51.la/s/Guz3lwHCsVme9Cu"><div class="busuanzi_container" id="busuanzi_container"><span class="busuanzi_container_site_pv" id="busuanzi_container_site_pv">访问量:<span id="busuanzi_value_site_pv"><i class="fa fa-spinner"></i></span></span><span class="busuanzi_container_site_uv" id="busuanzi_container_site_uv">访客数:<span id="busuanzi_value_site_uv"><i class="fa fa-spinner"></i></span></span><span style="padding-right: 10px;"></span></div></a><a rel="nofollow" target="_blank" href="https://www.upyun.com/?utm_source=lianmeng&utm_medium=referral"><span style="font-weight:bold;letter-spacing: 1px;">本网站由 </span><img class="nofancybox" height="32" style="vertical-align: middle" src="//cdn.staticaly.com/gh/npljy/npljy.github.io/main/img/upy_logo.min.svg" alt=""/><span style="font-weight:bold;letter-spacing: 1px;">提供CDN加速/云存储服务</span></a><span style="padding-right: 10px;"></span><a rel="nofollow" style="font-size:18px;font-weight:bold;vertical-align: middle" target="_blank" title="注册就送代金券可直接使用" href="https://console.upyun.com/register/?invite=HyDsjZHIL">注册</a></div></div></div></div><a class="show" id="rocket" href="#top"></a><div class="darkmode-toggle">🌓</div><script type="text/javascript" src="//cdn.jsdelivr.net/npm/cainiaoblog@latest/js/totop.min.js" async></script><script type="text/javascript" src="//cdn.jsdelivr.net/npm/cainiaoblog@latest/js/dark.min.js" async></script><script type="text/javascript" src="//cdn.jsdelivr.net/npm/cainiaoblog@latest/js/codeblock-resizer.min.js"></script><script type="text/javascript" src="//cdn.jsdelivr.net/npm/cainiaoblog@latest/js/smartresize.min.js"></script></div></body></html>
|