“1. 我为什么使用grunt; 2. 我为何放弃grunt转投gulp; 3. 我为何放弃gulp与grunt,转投npm scripts; 4. 我为何放弃前端” —— 司徒正美
前端(段子)界的发展突飞猛进,总感觉随时会跟不上技术潮流(其实我已经被甩开了一条街,so sad
选择在这样一个时机发布一篇 gulp 教程并不是我的初衷,第一次用 gulp 是在一年前,而这篇帖子在草稿箱里躺了一个多月,再不发出来说不定就过时了。
当我在用 gulp 时我用它做什么?
- 编译 sass
- 合并优化压缩 css
- 校验压缩 js
- 优化图片
- 添加文件指纹(md5)
- 组件化头部底部(include html)
- 实时自动刷新…
总之,gulp是前端开发过程中对代码进行自动化构建的利器。它不仅能对资源进行优化,而且在开发过程中能够通过配置自动完成很多重复的任务,让我们可以专注于代码,提高工作效率。
然而由于众所周知的原因,国内到 npm 服务器的连接很不稳定,如果你有V了个PN大可不必担心,也可通过设置 npm 代理服务器的方式访问:
1 2 3 4 |
|
推荐一个简单的方案:使用淘宝 npm 镜像
“这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。” —— 淘宝团队点赞
1 2 |
|
接下来开始 gulp 教程:
准备工作: 安装 node.js (推荐 TLS 版),并重启系统。
1. 全局安装 gulp
1 |
|
2. 目录结构:
└── src/ 源码目录
├── build/ .html 组件
├── sass/ .scss .sass 文件
├── css/ .css 文件
├── js/ .js 文件
└── img/ 图片
└── dist/ 输出目录
└── package.json
└── gulpfile.js
3. 关于 package.json
可以在项目上使用 npm init 配置,推荐直接新建并写入初始内容:
1 2 3 4 5 6 |
|
对于完整的 package.json (比如别人的开源项目), 只需对整个项目执行 npm install 即可安装 package.json 文件中声明的所有插件模块。
4. 给项目目录安装 gulp
1 |
|
—save-dev 这个参数会将插件信息自动更新到 package.json 里,其中的 devDependencies 属性会随插件依赖的安装卸载而改变。
PS. Windows 7及以上,按住 Shift 再右键,选择在此处打开命令窗口。免去 cd 命令定位目录的烦恼。
5. 给项目目录安装常用的插件
PS.可与上一步同时进行
1 |
|
插件将在配置文件里介绍,更多用法请参见相应的 GitHub 主页,或者直接戳这里: https://www.npmjs.com/package/
以上两个安装操作将会在项目目录下生成 node_modules 文件夹,相应的插件都在这里。
Windows 用户请注意,此文件夹可能 无法删除 无法复制 无法移动,会出现诸如“包含名称过长且无法放入回收站”,“源文件名长度大于文件系统支持的长度。请尝试将其移动到具有较短路径名称的位置” 等等问题。使用一个简单的方式即可删除,使用 WinRAR “添加到压缩文件”,勾选压缩选项里的 “压缩后删除源文件” ,确定之后即可删除。
6. API
别看我,看它:http://www.gulpjs.com.cn/docs/api/
7. 代码示例
1 2 3 4 5 6 7 8 9 10 |
|
1 2 3 4 5 |
|
1 2 3 4 5 |
|
代码中, [email protected]@hash 是 gulp-rev-append 插件的指纹标识
@@include(‘build/header.html’) 可以插入 html 文件,还可以配合参数生成独立的头部。
8. 我的 gulpfile.js,配置及说明
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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 |
|
9. 使用 gulp 的方法
1 |
|
赶在四年一遇的2月29号,匆忙发表。
PS. 感谢 @合金大圣 订正错误。 16.07.04
更新 Gulp 系列教程,请戳下面