µ±Ç°Î»Ö㺠´úÂëÃÔ >> ×ÛºÏ >> Webpackѧϰ - ΪʲôҪʹÓù¹½¨¹¤¾ß/ʲôÊÇWebpack
  Ïêϸ½â¾ö·½°¸

Webpackѧϰ - ΪʲôҪʹÓù¹½¨¹¤¾ß/ʲôÊÇWebpack

Èȶȣº74   ·¢²¼Ê±¼ä£º2024-01-24 07:19:13.0

JavaScriptºÍCSSµÄÒÀÀµÎÊÌâ

ÔÚ¿ª·¢ÖУ¬¾­³£³öÏÖµÄÒ»¸öÎÊÌ⣬¾ÍÊÇJavaScriptºÍCSSµÄÒÀÀµÎÊÌâ¡£¼òµ¥µÄ˵¾ÍÊÇJavaScriptºÍCSSµÄÔÚÒ³ÃæÖеÄ˳ÐòÎÊÌâ¡£¾­³£»áÔì³ÉCSSûÆð×÷Óã¬JavaScriptµÄij¸ö±äÁ¿ºÍ·½·¨ÕÒ²»µ½¡£
ÓкܶàÇé¿ö¶¼ÊÇÒòΪÒýÈëJavaScript»òÕßCSSµÄ˳Ðò²»¶Ô£¬ËäÈ»ÎÒÃÇ¿ÉÒÔʹÓÃһЩRequireJSÖ®ÀàµÄÄ£¿é¹ÜÀí£¬µ«ÊÇÒÀÈ»ÔںܶàÇé¿öÏÂÐèÒªÒýÈ벻ͬµÄÎļþ£¬ÓÈÆäÊÇCSSûÓÐÒ»¸öºÃµÄÄ£¿é»¯¹ÜÀíµÄ×é¼þ¡£
ÄÇôÎÒÃǾÍÐèÒªÓÐÒ»¸öͳһµÄµØ·½À´¹ÜÀíJavaScriptºÍCSSµÄ˳ÐòÎÊÌ⣬¶ø¹¹½¨¹¤¾ß¿ÉÒÔ´ó´ó¼õÉÙ´ËÀàÎÊÌâ¡£

ÐÔÄÜÓÅ»¯

Ò»°ãä¯ÀÀÆ÷ÇëÇóµÄÎļþÔ½¶àÔ½ºÄʱ£¬ÇëÇóµÄÎļþÔ½´óÔ½ºÄʱ£¬ÓÈÆäÊÇΪÁËǰ¶ËÏîÄ¿µÄ´úÂë¸üÇåÎú£¬½á¹¹¸üºÏÀí£¬ÎÒÃDzÉÓÃÁËMVC£¬MVVMµÈºÜ¶à¼Ü¹¹·Ö½â³öÁ˺ܶàJSÎļþ£¬ÎÞÒÉÓÖÍÏÂýÁËÍøÒ³µÄËÙ¶È¡£ÎªÁ˽â¾öÕâ¸öÎÊÌ⣬һ°ã»á²ÉÓÃÒÔÏÂÁ½¸ö·½°¸£º

1.ÎļþºÏ²¢
ä¯ÀÀÆ÷ÐèÒªÏÂÔØ¶à¸öJSÎļþ£¬¶øä¯ÀÀÆ÷ÊÇÓв¢·¢ÏÞÖÆ£¬Ò²¾ÍÊÇͬʱ²¢·¢Ö»ÄÜÏÂÔØ¼¸¸öÎļþ
¼ÙÈçä¯ÀÀÆ÷²¢·¢ÊýÊÇ5£¬ÄãÓÐ30¸öJSÎļþ£¬¶øÃ¿5¸öÐèÒª2S, ÄÇôÄã¹âÏÂÔØJSÎļþ¶¼ÐèÒª12S
ÄÇÃ´ÍøÒ³µÄÐÔÄÜ¿ÉÏë¶øÖª£¬ËùÒÔÎÒÃÇÐèÒªºÏ²¢¶à¸öÎļþÒÔ¼õÉÙÎļþµÄÊýÁ¿

2.ÎļþѹËõ
ÎÒÃÇÖªµÀÎļþÔ½´ó£¬ÏÂÔØÔ½Âý£¬¶øÕë¶ÔJavaScriptºÍCSS£¬ÀïÃæµÄ¿Õ¸ñ£¬»»ÐÐÕâЩ¶¼ÊÇΪÁËÈÃÎÒÃǶÁ´úÂëʱ¸üÈÝÒ×ÔĶÁ£¬µ«ÊǶԻúÆ÷À´Ëµ£¬ÕâЩ¶ÔËüûÓÐÓ°Ïì¡£ ËùÒÔΪÁ˼õÉÙÎļþ´óС£¬Ò»°ãµÄÇé¿öÎÒÃǶ¼»áÓù¤¾ßÈ¥µô¿Õ¸ñºÍ»»ÐУ¬ÓÐʱºòÎÒÃÇ»¹»áÓñȽ϶̵ıäÁ¿Ãû(Õâ¸öÒªÈù¤¾ß×îºóѹËõʱ×ö£¬¶øÔ´´úÂëÒ»¶¨Òª±£Ö¤ÃüÃû¿É¶ÁÐÔ) À´¼õÉÙÎļþ´óС¡£
¶øËùÓеÄǰ¶Ë¹¹½¨¹¤¾ß¶¼¾ßÓÐÎļþºÏ²¢ºÍѹËõµÄ¹¦ÄÜ
Ìá¸ß¿ª·¢Ð§ÂÊ

Vendorǰ׺

ÔÚCSS3ʹÓÃÔ½À´Ô½¶àµÄʱºò£¬ÎÒÃǶ¼ÖªµÀһЩCSS3µÄÐÂÌØÐÔ£¬ÔÚ²»Í¬µÄä¯ÀÀÆ÷ÖУ¬CSSÓв»Í¬µÄǰ׺£¬Èç¹ûÎÒÃÇÊÖ¹¤Ìí¼Ó½«»áºÜ·±Ëö£¬¶øÈç¹ûʹÓù¹½¨¹¤¾ß£¬ºÜ¶à¹¹½¨¹¤¾ß¿ÉÒÔ×Ô¶¯¸øÎÒÃÇÌí¼ÓCSSµÄVendorǰ׺¡£

µ¥Ôª²âÊÔ

JavaScriptµÄµ¥Ôª²âÊÔÔÚʹÓÃMVC»òÕßMVVMµÄ¿ò¼Üºó£¬±äµÃÔ½À´Ô½ÈÝÒ×£¬¶øµ¥Ôª²âÊÔÊÇÖÊÁ¿±£Ö¤µÄÒ»¸öºÜÖØÒªµÄÊֶΣ¬ËùÒÔÔÚÌύ֮ǰ£¬Ê¹Óù¹½¨¹¤¾ß×Ô¶¯ÅÜÒ»±éÎÒÃǵĵ¥Ôª²âÊÔÊǷdz£ÓбØÒªµÄ£¬ÄܽøÒ»²½¼ì²âÄãµÄÏîÄ¿µÄ½¡×³ÐÔºÍÈÝ´íÄÜÁ¦¡£

´úÂë·ÖÎö

ÎÒÃÇдµÄJavaScriptºÜ¶àʱºò»áÓÐһЩDZÔÚµÄbug,  ±ÈÈçÍüÁËÌí¼Ó·ÖºÅ£¬Ä³¸ö±äÁ¿Ã»Óеȵȣ¬Ê¹ÓÃһЩJavaScriptµÄ´úÂë·ÖÎö¹¤¾ß£¬¿ÉÒԺܺõİïÎÒÃǼì²éһЩ³£¼ûµÄÎÊÌâ¡£

°æ±¾Éý¼¶

±ÈÈçµÚÒ»°æ±¾Ê¹ÓÃnpmÖ®ÀàÀ´ÒýÓÃǰ¶ËJavaScriptºÍCSSµÄµÚÈý·½¿â£¬ÄÇôÈç¹û°æ±¾Éý¼¶£¬Ìí¼ÓÒÆ³ýµÈ¶¼ÓÃÊÖ¹¤À´ÐÞ¸ÄHTMLµÄ»°£¬Ò»À´ºÄʱ¶þÀ´ÈÝÒ׳ö´í£¬ÓÈÆäÊÇ¿ª·¢°æ±¾ºÍÉú²ú°æ±¾Ö®¼äÇл»»áÓкܶàÎÊÌ⣬ÄÇôʹÓÃǰ¶Ë¹¹½¨¹¤¾ß¿ÉÒԺܺõĽâ¾öÕâЩÎÊÌâ¡£

 

³£¼ûµÄǰ¶Ë¹¹½¨¹¤¾ß£ºGulp¡¢Grunt¡¢Webpack

 

ʲôÊÇwebpack?

webpackÊÇǰ¶ËµÄÒ»¸öÏîÄ¿¹¹½¨¹¤¾ß£¬ËüÊÇ»ùÓÚ Node.js ¿ª·¢³öÀ´µÄÒ»¸öǰ¶Ë¹¤¾ß¡£

WebPack¿ÉÒÔ¿´×öÊÇÄ£¿é´ò°ü»ú£¨bundler£©¡£Ëü×öµÄÊÂÇéÊÇ£¬·ÖÎöÄãµÄÏîÄ¿½á¹¹£¬ÕÒµ½JavaScriptÄ£¿éÒÔ¼°ÆäËüµÄһЩä¯ÀÀÆ÷²»ÄÜÖ±½ÓÔËÐеÄÍØÕ¹ÓïÑÔ£¨Scss£¬TypeScriptµÈ£©£¬²¢½«Æäת»»ºÍ´ò°üΪºÏÊʵĸñʽ¹©ä¯ÀÀÆ÷ʹÓá£
ÔÚwebpackµÄ¸ÅÄîÖУ¬Ç°¶ËµÄËùÓÐ×ÊÔ´Îļþ£¨js/css/json/img/sass/less/...£©¶¼»á×÷Ϊģ¿éÀ´±»´¦Àí£¬webpack»á¸ù¾ÝÄ£¿éµÄÒÀÀµ¹ØÏµ½øÐо²Ì¬·ÖÎö£¬Éú³É¶ÔÓ¦µÄ¾²Ì¬×ÊÔ´£¬×îÖÕ´ò°ü²¿ÊðÉÏÏß¡£


WebPack¡¢Grunt¡¢Gulp

1. Çø±ð
Gulp/GruntÊÇÒ»ÖÖÄܹ»ÓÅ»¯Ç°¶ËµÄ¿ª·¢Á÷³ÌµÄ¹¤¾ß£¬ÊÇ»ùÓÚ task ÈÎÎñµÄ¡£
WebPackÊÇÒ»ÖÖÄ£¿é»¯µÄ½â¾ö·½°¸£¬ÊÇ»ùÓÚÕû¸öÏîÄ¿½øÐй¹½¨µÄ¡£
²»¹ýWebpackµÄÓŵãʹµÃWebpackÔںܶೡ¾°Ï¿ÉÒÔÌæ´úGulp/GruntÀàµÄ¹¤¾ß

2. GruntºÍGulpµÄ¹¤×÷·½Ê½
ÔÚÒ»¸öÅäÖÃÎļþÖУ¬Ö¸Ã÷¶ÔijЩÎļþ½øÐÐÀàËÆ±àÒ룬×éºÏ£¬Ñ¹ËõµÈÈÎÎñµÄ¾ßÌå²½Ö裬¹¤¾ßÖ®ºó¿ÉÒÔ×Ô¶¯ÌæÄãÍê³ÉÕâЩÈÎÎñ¡£

3. WebpackµÄ¹¤×÷·½Ê½
°ÑÄãµÄÏîÄ¿µ±×öÒ»¸öÕûÌ壬ͨ¹ýÒ»¸ö¸ø¶¨µÄÖ÷Îļþ£¨È磺index.js£©£¬Webpack½«´ÓÕâ¸öÎļþ¿ªÊ¼ÕÒµ½ÄãµÄÏîÄ¿µÄËùÓÐÒÀÀµÎļþ£¬Ê¹ÓÃloaders´¦ÀíËüÃÇ£¬×îºó´ò°üΪһ¸ö£¨»ò¶à¸ö£©ä¯ÀÀÆ÷¿Éʶ±ðµÄJavaScriptÎļþ¡£

 

loader

webpack±¾ÉíÖ»ÄܼÓÔØjs/jsonÄ£¿é£¬Èç¹ûÒª¼ÓÔØÆäËüÀàÐ͵ÄÎļþ/Ä£¿é, ¾ÍÐèҪʹÓöÔÓ¦µÄloader½øÐÐת»¯ºÍ¼ÓÔØ¡£
loader ¿ÉÒÔ½«ËùÓÐÀàÐ͵ÄÎļþת»»Îªwebpack Äܹ»´¦ÀíµÄÓÐЧģ¿é£¬È»ºóÄã¾Í¿ÉÒÔÀûÓà webpack µÄ´ò°üÄÜÁ¦£¬¶ÔËüÃǽøÐд¦Àí¡£
loader×ÔÉíÒ²ÊÇÔËÐÐÔÚnode.js»·¾³ÖеÄJavaScriptÄ£¿é£¬Æä±¾ÉíÊÇÒ»¸öº¯Êý£¬½ÓÊÕÔ´Îļþ×÷Ϊ²ÎÊý£¬·µ»Ø×ª»¯µÄ½á¹û¡£
loaderÒ»°ãÒÔ xxx-loader µÄ·½Ê½ÃüÃû£¬xxx´ú±íÁËÕâ¸öloaderÒª×öµÄת»¯¹¦ÄÜ£¬±ÈÈ磺css-loader£¬json-loaderµÈ¡£

²å¼þ

loader ±»ÓÃÓÚת»»Ä³Ð©ÀàÐ͵ÄÄ£¿é£¬¶ø²å¼þÔò¿ÉÒÔÓÃÓÚÖ´Ðз¶Î§¸ü¹ãµÄÈÎÎñ¡£
²å¼þµÄ·¶Î§°üÀ¨£¬´Ó´ò°üÓÅ»¯ºÍѹËõ£¬Ò»Ö±µ½ÖØÐ¶¨Òå»·¾³ÖеıäÁ¿¡£
²å¼þ½Ó¿Ú¹¦Äܼ«ÆäÇ¿´ó£¬¿ÉÒÔÓÃÀ´´¦Àí¸÷ÖÖ¸÷ÑùµÄÈÎÎñ¡£

²å¼þºÍloaderµÄÇø±ð

²å¼þ¿ÉÒÔÍê³ÉһЩloader²»ÄÜʵÏֵŦÄÜ£»
1.ʹÓòå¼þÒ»°ãÔÚwebpackµÄÅäÖÃÐÅÏ¢pluginsÑ¡ÏîÖÐÖ¸¶¨
2.UglifyJSPlugin:  Ñ¹ËõjsÎļþ
3.HtmlWebpackPlugin:  ×Ô¶¯Éú³ÉHTMLÎļþ
4.CleanWebpackPlugin:  ×Ô¶¯Çå³ýÖ¸¶¨Îļþ¼Ð×ÊÔ´ 

  Ïà¹Ø½â¾ö·½°¸