hello gulp,使用gulp的第一天。
昨天花了一天的时间,学习了一下gulp,今天整理一下,也分享给朋友们。
首先当然是去gulp的官网逛一圈了:
http://gulpjs.com/
中文站地址:
http://www.gulpjs.com.cn/
里边有入门指南,如下:
1. 全局安装 gulp:
$npm install --global gulp
2. 在项目根目录创建package.json文件,可以手动创建,也可以用这行命令自动化完成:
$ cd <yourworkspacePath>
$ npm init
3. 作为项目的开发依赖(devDependencies)安装:
$ npm install --save-dev gulp
4. 在项目根目录下创建一个名为 gulpfile.js 的文件:
var gulp = require('gulp');
gulp.task('default', function() {
// 将你的默认的任务代码放在这
console.log("hello gulp!");
});
5. 运行 gulp:
$ gulp
不过还是要有一些细节需要注意:
1.在windows环境下命令当然就不要加那个$符号了。
2.网上还有一种npm install –global gulp-cli这种全局安装的方法,那么gulp和gulp-cli有什么不同呢?答案在这里:
http://stackoverflow.com/questions/35571679/what-does-gulp-cli-stands-for
3.为什么要在全局装一个gulp又要在本地项目装一个gulp呢?
因为方便版本控制。不同的项目可以使用不同版本的gulp而不互相影响,就是这样喽。
等等,等等,很容易走到这里的我,还是没搞懂一件事,我们为什么要用gulp。为什么不是grunt而是gulp。还有一些相似的功能的webpack,为什么是gulp!于是,我查到了这些:
为什么是gulp不是grunt:
http://slides.com/contra/gulp#/
gulp跟webpack又是啥关系:
https://www.zhihu.com/question/37020798(感谢知乎)
如果这些都不是你关心的问题,你可能是想问:为啥要用gulp或者grunt?
借用grunt中文网的一句话:自动化。对于需要反复重复的任务,例如压缩(minification)、编译、单元测试、linting等,自动化工具可以减轻你的劳动,简化你的工作。
好了,解决了这么多个为什么以后,我们继续gulp的学习之旅。就在刚刚,我们已经装好了gulp,那么我们下面就开始我们的工作吧。
假如说,我们需要给js文件进行压缩这样一件事,那么我们最原始的方式,可以把代码拷贝到压缩工具里,然后让工具压缩了,我们再拷出来放到我们的工程里。如果用gulp的话呢,我们就可以不用这么麻烦了,我们只需要做这几件事:
1.安装gulp的js压缩插件
npm install –save-dev gulp uglify
(大家应该注意到了吧,–save-dev的意思就是把这个插件的安装信息写入到我们的package.json文件里的意思)
2.在gulpfile.js里配置任务
var gulp = require('gulp'),
uglify = require('gulp-uglify');
gulp.task('compile-js',function(){
return gulp.src(<你要压缩的js文件路径>)
.pipe(uglify())
.pipe(gulp.dest(<你要输出的文件路径>));
});
写好以后,运行 gulp compile-js
这样看是不是很简单,哈哈。你可能觉得,这没那么简单啊,还要写代码,好麻烦。那是因为你只压缩了一个文件啊,如果让你压缩十个以上的文件,在压缩工具里拷贝来拷贝去都会弄错吧,但是如果用gulp,工作量一点都没有增加,还是这一小段代码就搞定。同样的,css,html的压缩,sass的解译都可以在这里完成,相比以前用多个工具软件切来切去方便的就不是一点半点了。
当然啦,这里边还是有一些小坑的哦。首先是gulp的api你需要学习,要不然你怎么知道怎么建任务,怎么制定源文件和目标文件呢。
http://www.gulpjs.com.cn/docs/api/
这个小栗子就完了,不过呢,还有一些常用的功能,对应一些常用的插件,来做介绍:
http://www.cnblogs.com/2050/p/4198792.html
上边这篇文章的第四部分,插件部分讲的很好哦。
然后就是一些小技巧,比如说watch和changed的事:
http://www.tuicool.com/articles/2miAvyu
上边这篇文章是一篇踩坑文,感谢朋友们的分享。
还有一个小技巧,那就是如何删掉某一个插件,就比如你某个插件装坏了,或者你不需要了,你就这样:
npm uninstall –save <插件全名>
比如我们刚才的gulp-uglify
npm uninstall –save gulp-uglify
感谢网友们的无私分享!
hello gulp,使用gulp的第一天。的更多相关文章
- 【gulp】Gulp的安装和配置 及 系列插件
注意:要安装俩次gulp(全局和本地):全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能. 之前由大牛帮忙配置的gulp来用.今天时间充裕,就和小伙伴一起动手配置 ...
- [如何在mac下使用gulp] 2. gulp模块的常用方法
常用的gulp模块方法有: gulp.src() gulp.src('client/one.js'); //指定明确的要处理文件 gulp.src('client/*.js'); //处理client ...
- 玩转gulp之gulp编译less
用好gulp grunt webpack让前端编程走向自动化,是作为一个前端开发必须学会的技能,不然逼格怎么提升的上去呢... 然后教大家如何用gulp装逼.一点点的学,都是相通的嘛 1. 安装nod ...
- 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)
相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...
- 【gulp】gulp + browsersync 构建前端项目自动化工作流
什么是 gulp? gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.gulp.js 是基于 node.js 构建的,利用 node.js 流的威力,你可以快速构 ...
- 利用gulp 插件gulp.spritesmith 完成小图合成精灵图,并自动输出样式文件
安装依赖 yarn add gulp yarn add gulp.spritesmith 本次依赖的版本是: "gulp": "^3.9.1" "gu ...
- Gulp思维——Gulp高级技巧
本文翻译自Getting gulpy -- Advanced tips for using gulp.js 感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨 ...
- [转]Gulp思维 —— Gulp高级技巧
感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨论了一些使用gulp.js时常踩的坑,以及一些更加高级和定制化的插件和流的使用技巧. 基本任务 gulp的基 ...
- 我的gulp第一个程序
以前都是单枪匹马的干,从没用过模块化的打包工具,加入新的团队后,模块化开发学到不少,尤其是工具的使用.团队目前较多的使用gulp,也是最流行的一款前端打包工具.最近Team开始尝试用gulp,我也只是 ...
- gulp+webpack+angular1的一点小经验(第一部分gulp与webpack的整合)
时间匆匆如流水继上周熟悉了gulp的初步安装与环境配置以后,我的项目又进入了新的阶段! 这篇文章将把我这一周遇到的一些问题,以及解决的方式做一个小小的总结,不一定记的完整,但都是个人的一点经验,分享给 ...
随机推荐
- [考试反思]0920csp-s模拟测试48:弱小
注:T1全场46个人里42个AC了. %%%zkt也AK了呢越来越强啊 我是真的越来越弱了吗? 我到底在干什么... 在难度递增的题里分数递增... 考试过程大体还好,但是如此快速地WA掉T1也真是蠢 ...
- javascript 作用域链及性能优化
在JavaScript中,函数也是对象,实际上,JavaScript里一切都是对象.函数对象和其它对象一样,拥有可以通过代码访问的属性和一系列仅供JavaScript引擎访问的内部属性.其中一个内部属 ...
- Birt报表
研究了两天终于发现开始学会了BIRT报表的开发流程. 第一步:到http://www.eclipse.org/downloads/下载 Eclipse IDE for Java and Report ...
- python爬虫-携程-eleven参数
携程-eleven分析 一.eleven的位置 通过对旁边栈的分析,它是在另一个js文件中调用的.那个js文件是一个自调用的函数,所以我们可以直接copy下来,用浏览器执行看看 执行运行是会报错的,u ...
- 使用Typescript重构axios(四)——实现基础功能:处理post请求参数
0. 系列文章 1.使用Typescript重构axios(一)--写在最前面 2.使用Typescript重构axios(二)--项目起手,跑通流程 3.使用Typescript重构axios(三) ...
- vue自定义长按指令
1.前言 在word中,当我们需要删除一大段文本的时候,我们按一下键盘上的退格键,就会删除一个字,当我们长按住退格键时,就会连续不停的删除,这就是键盘按键的长按功能.那么我们也想在网页中让一个按钮也具 ...
- [转载]2.6 UiPath循环嵌套的介绍和使用
一.循环嵌套的介绍 一个循环体内又包含另一个完整的循环结构,就称之为循环嵌套.内嵌的循环中还可以嵌套循环,这就是多层循环,也叫做多重循环. 二.在UiPath中结合使用循环嵌套生成99乘法表 1.打开 ...
- Android常见内存泄露
前言 对于内存泄漏,我想大家在开发中肯定都遇到过,只不过内存泄漏对我们来说并不是可见的,因为它是在堆中活动,而要想检测程序中是否有内存泄漏的产生,通常我们可以借助LeakCanary.MAT等工具来检 ...
- 设置eclipse的字体大小
window->preferences->general->Appearance->Colors and Fonts->basic->text font->点 ...
- saprk性能调优参考
1.Tuning Spark 文档 原文:http://spark.apache.org/docs/latest/tuning.html 翻译参考:https://www.cnblogs.com/lh ...