昨天花了一天的时间,学习了一下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的第一天。的更多相关文章

  1. 【gulp】Gulp的安装和配置 及 系列插件

    注意:要安装俩次gulp(全局和本地):全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能. 之前由大牛帮忙配置的gulp来用.今天时间充裕,就和小伙伴一起动手配置 ...

  2. [如何在mac下使用gulp] 2. gulp模块的常用方法

    常用的gulp模块方法有: gulp.src() gulp.src('client/one.js'); //指定明确的要处理文件 gulp.src('client/*.js'); //处理client ...

  3. 玩转gulp之gulp编译less

    用好gulp grunt webpack让前端编程走向自动化,是作为一个前端开发必须学会的技能,不然逼格怎么提升的上去呢... 然后教大家如何用gulp装逼.一点点的学,都是相通的嘛 1. 安装nod ...

  4. 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一)

    相关连接导航 在windows下安装gulp —— 基于 Gulp 的前端集成解决方案(一) 执行 $Gulp 时发生了什么 —— 基于 Gulp 的前端集成解决方案(二) 常用 Gulp 插件汇总 ...

  5. 【gulp】gulp + browsersync 构建前端项目自动化工作流

    什么是 gulp? gulp.js 是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.gulp.js 是基于 node.js 构建的,利用 node.js 流的威力,你可以快速构 ...

  6. 利用gulp 插件gulp.spritesmith 完成小图合成精灵图,并自动输出样式文件

    安装依赖 yarn add gulp yarn add gulp.spritesmith 本次依赖的版本是: "gulp": "^3.9.1" "gu ...

  7. Gulp思维——Gulp高级技巧

    本文翻译自Getting gulpy -- Advanced tips for using gulp.js 感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨 ...

  8. [转]Gulp思维 —— Gulp高级技巧

    感受过gulp.js带来的兴奋过后,你需要的不仅仅是它的光鲜,而是切切实实的实例.这篇文章讨论了一些使用gulp.js时常踩的坑,以及一些更加高级和定制化的插件和流的使用技巧. 基本任务 gulp的基 ...

  9. 我的gulp第一个程序

    以前都是单枪匹马的干,从没用过模块化的打包工具,加入新的团队后,模块化开发学到不少,尤其是工具的使用.团队目前较多的使用gulp,也是最流行的一款前端打包工具.最近Team开始尝试用gulp,我也只是 ...

  10. gulp+webpack+angular1的一点小经验(第一部分gulp与webpack的整合)

    时间匆匆如流水继上周熟悉了gulp的初步安装与环境配置以后,我的项目又进入了新的阶段! 这篇文章将把我这一周遇到的一些问题,以及解决的方式做一个小小的总结,不一定记的完整,但都是个人的一点经验,分享给 ...

随机推荐

  1. docker compose网络设置

    (系统:Centos 7.4 ,docker 版本:18.03.1-ce, docker-compose version 1.18.0) cat docker-compose.yml version: ...

  2. 命运Ⅰ&命运Ⅱ

    upd:为啥下面的相关博文都是各种退役记(这TM怎么就相关了) 竟然被卡线了,16名,我这几次考试也是炸到了一定境界了... 前三次模拟总榜rk1,第一次分机房rk4,第二次分机房rk11,第三次分机 ...

  3. 如何在vue-cli项目中结合mockjs模拟假数据

    1.前言 在如今前后端分离的开发方式已被广泛采用的今天,前端同学和后端同学各自独立开发,后端提供数据接口,前端调用接口获取数据渲染页面.但是在实际开发中,后端开发由于逻辑相对复杂接口迟迟提供不到位,而 ...

  4. git 生成密匙时遇到报错 :Too many arguments.

    今天在我用新电脑想要向github上的远程库上传项目时,由于新电脑上的本地库没有与远程库建立连接,所以要在本地生成密匙添加到github上才可以上传,在我执行命令 ssh-keygen -t rsa- ...

  5. 5种常见Bean映射工具的性能比对

    本文由 JavaGuide 翻译自 https://www.baeldung.com/java-performance-mapping-frameworks .转载请注明原文地址以及翻译作者. 1. ...

  6. freeradius简单配置

    1.安装freeradius sudo apt-get update sudo apt-get install freeradius 2.配置client.conf vim /etc/freeradi ...

  7. centos6的redis安装

    1.到redis的官网下载redis压缩包 https://redis.io/ 2.利用命令 mkdir /usr/local/redis 新建redis文件夹 并将redis压缩包移动到新建的文件夹 ...

  8. C++程序员学Python

    目录 C++程序员学Python 第二章.变量和数据类型 1.注释语句前用#: 2.常用于大小写函数: 第三章.列表 1.列表简述 2.修改,增加,插入,删除列表元素 第四章操作列表 1.遍历 2.创 ...

  9. CAS3.5.2 Server登录后返回用户信息详细解决方案

    单点登录(Single Sign-On, 简称SSO)是目前比较流行的服务于企业业务整合的解决方案之一,SSO使得在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.大家在使用时CA ...

  10. mailx加163邮箱发邮件

    mailx加163邮箱发邮件 参考:https://www.cnblogs.com/myvic/p/9579954.html 配置 $ yum install mailx -y $ vim /etc/ ...