前端自动化构建一直很火热, 各种工具也层出不穷, 开始有点不以为然, 但使用之后发现确实很方便, 也整理出了一套自己感觉不错的搭配组合, 用 Webpack 来处理js, 用 Gulp 来编译与压缩sass, 检查与压缩js, 处理图片等等, 用 Babel 来讲es2015转化为es5. 每次 Babel 与 Webpack 组合时, 网上资料无不扯上 React, 我感觉这一块一直是一个小痛点吧。当然基于 Babel + Webpack + ES6+ 的 React 确实很优雅, 最近正在努力学习, 下一篇博文分享吧。
Webpack
Webpack主要特点在于前端资源模块化管理和打包功能, 这样我们就可以像node那样使用模块的方式去书写我们的前端代码了, 使用npm包, 可以将你的js适当模块化分解, 暴露相应接口.
当然先不要忘了全局安装:
|
|
Gulp
利用node流以达到快速构建的目的, 具有众多插件, 可以完成以下自动构建工作:
- 编译Sass
- 压缩css
- 利用eslint检查js
- 模糊代码
- 压缩图片
- 快速清理
- …
当然先不要忘了全局安装:
|
|
Babel
又要安利一发阮一峰老师了, 阮一峰老师的博文确实简明扼要, 使像我一样的小白菜快速掌握
使用babel后, 就可以肆无忌惮地使用许多es6的特性了, 比如es6的模块加载.
下面以我做的一个很简单的Backbone小项目来说明以下
目录结构
|
|
gulp配置
gulp的配置放在gulpfile.js中, 简单介绍一些常用API
gulp.src(globs[, options]) - 指明需要处理的源文件路径
gulp.dest(path[, options]) - 指明任务处理完成后的输出路径
gulp.task(name [, deps, fn]) - 任务注册, 可以顺序执行, 需要添加依赖
gulp.watch(glob[, opts], tasks) - 监视文件的变化并运行相应的任务
.pipe() - 传递给后续插件
拿以下示例简单说明:
|
|
webpack配置
webpack的配置放在webpack.config.js中,由于gulp已经处理了大部分,所以webpack的配置就相对简单了
entry: js文件入口, output: 经过处理后的js文件输出
可以多文件输入输出
|
|
module: loader用来处理js
可以配合babel使用
|
|