功能说明
Reduce是组件打包工具。
Reduce以组件为输入,解析依赖,打包生成最终可用的静态资源。
实现特定web功能的单元可称之为组件,通常包含JS、CSS、图片等静态资源。
为什么要使用Reduce
相比webpack, browserify而言:
- 支持组件级别的打包。通过定义组件的依赖声明形式,可自动将组件所需要的各种静态资源整合,生成最终浏览器可使用的形式。
- CSS打包方式对开发者更友好,不需要在JS中引入CSS。
支持哪些功能
插件机制与Transform机制。 底层使用browserify进行JS的打包,因此集成了browserify的功能,包括它的插件机制和Transform机制。 更多说明请参见插件与Transform。
灵活定制打包策略。 底层使用common-bundle对JS与CSS进行打包,可方便地进行包的拆分与公共包的提取。 common-bundle即将支持webpack中实现的Code Splitting功能。 更多说明请参见定制打包策略。
模块热替换。 基于browserify-hmr实现了模块热替换的功能,其接口与webpack保持一致。
watch新增和删除的入口。 对watchify做了一些改动,使其在watch时可检测出新增的入口,具体请见watchify2。