由于工作的需要,最近都在研究gulp打包,昨天终于完成最终版本,今天上传了分支。
总结记录一些笔记。有需要的同学可以拿去用用哟!
需求
js&css压缩{输出}
--> js&css计算MD5并修改文件名
--> 图片压缩{输出}
--> 替换HTML里的js&css文件名
--> 压缩HTML代码{输出}
--> 将打包后输出的js&css文件上传至cdn
如何开始
1 首先你得已经安装了nodejs环境,然后依次按照下面的命令进行
1 | $ npm install -g gulp # 全局安装gulp |
2 项目目录结构1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27目录结构
.
├── app
│ ├── css // css下可以放外部导入css库,dist下可放页面样式
│ │ ├── a.css
│ │ ├── b.css
│ │ └── dist
│ │ └── c.css
│ ├── img
│ │ └── tg.png
│ └── js // js下放jq之类的外部库,pages下放页面js
│ ├── a.js
│ ├── main.js
│ └── pages
│ └── aa.js
├── config // 插件需要的配置文件,json里设置upyun信息
│ └── default.json
├── dist // 自动生成的输出目录
├── gulpfile.js
├── index.html
├── node_modules
├── package.json
└── rev // rev插件生成的文件,记录带了md5信息的文件
├── css
│ └── rev-manifest.json
└── js
└── rev-manifest.json
gulpfile.js
注释的比较详细了,应该新手也能看懂!
优化部分
1 | var gulp = require('gulp'), |
清理文件
1 | /** |
上传至又拍云
这里采用的是gulp-upyun插件,加上config,配置用户名密码。当然用户名和密码也可以直接写在gulpfile.js里。但是多少有点怪,所以我采取了使用config插件来配置,如果有什么更好的方式请务必要告诉我!:)真诚脸!
此外,一般来说我们管理cdn上的资源会采取ftp上管理,所以这里下载和删除可以省去,仅留下上传部分的代码既可。
1 |
|
把任务组合到build、deploy中
1 | /** |
总结
这些都只是普通的简单应用,在简单的小型项目中使用也基本足够。我们还能使用gulp在开发过程中完成less或scss预处理,自动刷新等。具体过程可以查看参考链接。