谈谈你对 Webpack的认识
<p style="text-align:start;text-indent:2em;">WebPack是一个模块打包工具,可以使用 WebPack管理模块依赖,并编译输岀模块所需的静态文件。它能够很好地管理与打包Web开发中所用到的HTML、 JavaScript 、CSS以及各种静态文件(图片、字体等),让开发过程更加高效。对于不同类型的资源, WebPack有对应的模块加载器。Web Pack模块打包器会分析模块间的依赖关系,最后生成优化且合并后的静态资源。</p><p style="text-align:start;text-indent:2em;">WebPack的两大特色如下。</p><p style="text-align:start;text-indent:2em;">(1)代码切割( code splitting)</p><p style="text-align:start;text-indent:2em;">(2) loader可以处理各种类型的静态文件,并且支持串行操作WebPack以 CommonJS规范来书写代码,但对 AMD/CMD的支持也很全面,方便对项目进行代码迁移。</p><p style="text-align:start;text-indent:2em;">WebPack具有 require.js和 browserify的功能,但也有很多自己的新特性,</p><p style="text-align:start;text-indent:2em;">(1)对 CommonJS、AMD、ES6的语法实现了兼容。</p><p style="text-align:start;text-indent:2em;">(2)对 JavaScript、CSS、图片等资源文件都支持打包</p><p style="text-align:start;text-indent:2em;">(3)串联式模块加载器和插件机制,让其具有更好的灵活性和扩展性,例如提供对CoffeeScript、 EMAScript 6的支持</p><p style="text-align:start;text-indent:2em;">(4)有独立的配置文件 webpack.config. js。</p><p style="text-align:start;text-indent:2em;">(5)可以将代码切割成不同的块,实现按需加载,缩短了初始化时间。</p><p style="text-align:start;text-indent:2em;">(6)支持 SourceUrls和 SourceMaps,易于调试。</p><p style="text-align:start;text-indent:2em;">(7)具有强大的 Plugin接口,大多是内部插件,使用起来比较灵活</p><p style="text-align:start;text-indent:2em;">(8)使用异步I/O,并具有多级缓存,这使得 WebPack速度很快且在增量编译上更加快。</p>