web开发中经常使用到的静态资源主要有JavaScript、CSS、图片、Jade等文件,webpack中将静态资源文件称之为模块。webpack是一个模块打包工具(命令行工具),其能够兼容多种js书写规范,且能够处理模块间的依赖关系,具备更强大的js模块化的功能。 官方网站中用下图清晰的描述了webpack采用不一样的loader加载不一样的资源文件,打包生成多个js文件,也能够根据设置生成独立的图片、css文件等。 css
在以往的开发过程当中,常常会遇到如下三种状况:html
webpack能够很好地解决上面的问题,它具备Grunt、Gulp对于静态资源自动化构建的能力,是一个出色的前端自动化构建工具、模块化工具、资源管理工具。前端
webpack具备requireJs和browserify的功能,但仍有不少本身的新特性:webpack
1. 对 CommonJS 、 AMD 、ES6的语法作了兼容 2. 对js、css、图片等资源文件都支持打包 3. 串联式模块加载器以及插件机制,让其具备更好的灵活性和扩展性,例如提供对CoffeeScript、ES6的支持 4. 有独立的配置文件webpack.config.js 5. 能够将代码切割成不一样的chunk,实现按需加载,下降了初始化时间 6. 支持 SourceUrls 和 SourceMaps,易于调试 7. 具备强大的Plugin接口,大可能是内部插件,使用起来比较灵活 8.webpack 使用异步 IO 并具备多级缓存。这使得 webpack 很快且在增量编译上更加快