随着前端的工程越来越复杂,快速的模块化构建、部署前端app也就变得更加的重要,最近比较火爆的工具有browserify和webpack。真的是非常好用,本文的目的就是教会大家怎么使用这两个工具,因为强大所以配置也非常复杂,但是我们常用的核心功能非常简单,下面我们就从实战的角度,告诉大家怎么能用其快速的构建应用,本文中的打包代码基本是 即拷贝即用。
browserify
简介
browserify 简单概括来说就是:按照依赖(require)打包你的js文件。并让它(node端代码)跑在浏览器环境下。
浏览器兼容程度如下:
快速使用方法
|
|
假设main.js是你的node模块代码,且main.js依赖了 basicA.js basicB.js。你可以通过上述命令快速的产出bundle.js文件,在浏览器端使用,在bundle.js中会实现如下功能,所以最终代码就直接引用bundle.js即可。
- 增加对node的require和exports的支持,使得main.js的内容能够在浏览器端执行
- 分析出main.js的依赖模块basicA.js basicB.js并将其打包在bundle.js中
- 上述只是最简单的使用方法,详情请参考 browserify-handbook
gruntfile版本react工程最简配置(支持文件修改自动部署)
我们知道react是支持使用node模块和页面内嵌jsx,但是一般来说,react应用还是需要打包的步骤,将jsx的语法解析成对应的js执行。browsify支持react项目的打包,只需要引入对应的reactify 插件即可。最简单的配置如下:
|
|
|
|
webpack
简介
webpack 也是一个强大的模块管理工具,它将所有的资源都算作一个模块,如下图。
和前面提到的browsify相比,browsify只是支持js的打包,webpack更加的智能,主要体现:
- 支持CommonJs和AMD模块。
- 支持模块加载器和插件机制,可对模块灵活定制,比如babel-loader加载器,有效支持ES6。
- 可以通过配置,打包成多个文件。有效利用浏览器的缓存功能提升性能。
- 将样式文件和图片等静态资源也可视为模块进行打包。配合loader加载器,可以支持sass,less等CSS预处理器。
- 内置有source map,即使打包在一起依旧方便调试。
快速使用方法
|
|
webpack的默认文件名为:webpack.config.js,下面就介绍一个简单的工程所使用的webpack配置。
|
|
webpack加载器和插件
webpack最大的特色就是支持很多的loader,这些loader为复杂的应用构建提供了便利的部署环境,而不仅仅局限于node文件的浏览器环境打包而已。常用的加载器有哪些呢,这里会介绍这几个的用法。
- babel-loader:不仅可以做ES6-ES5的loader还可以用来实现jsx的编译
- less-loader:用于将less编译成对应的css
- css-loader:加载css文件
- style-loader:转化成内置的