由于工作的需要,最近都在研究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预处理,自动刷新等。具体过程可以查看参考链接。