安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务

1、去nodejs官网安装nodejs

2、打开命令行,OSX是终端,windows是命令提示符(window + r 输入cmd回车)

3、使用npm(nodejs的包管理器),或选装cnpm执行npm install cnpm -g --registry=https://registry.npm.taobao.org

4、全局安装gulp:(c)npm install gulp -g

5、新建package.json到项目根目录【非必选】(josn文件需删除注释,此用来记录项目信息和配置初始插件)

 {
"name": "test", //项目名称(必须)
"version": "1.0.0", //项目版本(必须)
"description": "This is for study gulp project !", //项目描述(必须)
"homepage": "", //项目主页
"repository": { //项目资源库
"type": "git",
"url": "https://git.oschina.net/xxxx"
},
"author": { //项目作者信息
"name": "surging",
"email": "surging2@qq.com"
},
"license": "ISC", //项目许可协议
"devDependencies": { //项目依赖的插件
"gulp": "^3.8.11",
"gulp-less": "^3.0.0"
}
}

6、本地项目安装,命令行定位项目目录后执行:(c)npm install --save-dev(根据package.json的配置,安装组件到项目)

  若忽略第五步,则这里只执行:(c)npm install gulp --save-dev(仅安装gulp到项目)

7、安装需要的gulp组件(绿色部分为需要安装的组件)另sass编译需提前安装ruby。(如第五步配置完成,此步忽略)

npm install gulp-sass gulp-autoprefixer gulp-minify-css gulp-css-spriter gulp-jshint gulp-uglify gulp-imagemin gulp-rename gulp-concat gulp-htmlmin gulp-notify gulp-cache gulp-livereload --save-dev

8、新建gulpfile.js【必选重要】

 /*!
* gulp
* $ npm install gulp-sass gulp-autoprefixer gulp-minify-css gulp-css-spriter gulp-jshint gulp-uglify gulp-imagemin gulp-rename gulp-concat gulp-htmlmin gulp-notify gulp-cache gulp-livereload --save-dev
*/
// 加载插件
var gulp = require('gulp'),//加载gulp
sass = require('gulp-sass'),//编译sass
autoprefixer = require('gulp-autoprefixer'),//补全浏览器前缀
minifycss = require('gulp-minify-css'),//压缩css为min
spriter = require('gulp-css-spriter'),//图片合并css精灵
jshint = require('gulp-jshint'),//js查错
uglify = require('gulp-uglify'),//压缩js
imagemin = require('gulp-imagemin'),//压缩图片
rename = require('gulp-rename'),//重命名gulp
concat = require('gulp-concat'),//合并js
html = require('gulp-htmlmin'),//压缩HTML
notify = require('gulp-notify'),//显示信息
cache = require('gulp-cache'),//压缩图片过滤(仅修改图片压缩)
livereload = require('gulp-livereload');// 网页自动刷新 //处理样式
gulp.task('styles', function() { var timestamp = +new Date();
return gulp.src('style/**/*.scss')//表示css及子文件夹中的所以文件
.pipe(sass())
.pipe(autoprefixer({browsers:['last 3 versions','ie >= 10','ie_mob >= 10','ff >= 30','chrome >= 34','safari >= 6','opera >= 12.1','ios >= 6','android >= 4.4','bb >= 10','and_uc 9.9']}))//支持浏览器种类
.pipe(rename({ suffix: '.min' }))//重命名加min后缀
// .pipe(spriter({
// 'spriteSheet': 'images/sprite'+timestamp+'.png',// 生成的spriter的位置
// 'pathToSpriteSheetFromCSS': '../images/sprite'+timestamp+'.png'// 生成样式文件图片引用地址的路径,如:backgound:url(../images/sprite20324232.png)
// }))
.pipe(minifycss({keepBreaks: true}))//分行显示
.pipe(gulp.dest('css'))//保存到指定目录
.pipe(notify({ message: 'Styles task complete' }));//打印信息
}); ////图片精灵
//gulp.task('spriter',function() {
// var timestamp = +new Date();
// //需要自动合并雪碧图的样式文件
// return gulp.src('css/*.css')
// .pipe(spriter({
// // 生成的spriter的位置
// 'spriteSheet': 'images/sprite'+timestamp+'.png',
// // 生成样式文件图片引用地址的路径,如:backgound:url(../images/sprite20324232.png)
// 'pathToSpriteSheetFromCSS': 'images/sprite'+timestamp+'.png'
// }))
// .pipe(minifycss())
// .pipe(gulp.dest('css'));
//}); //处理js
gulp.task('scripts', function() {
return gulp.src('script/**/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'))
//.pipe(concat('all.js'))
.pipe(rename({ suffix: '.min' }))
.pipe(uglify())
.pipe(gulp.dest('js'))
.pipe(notify({ message: 'Scripts task complete' }));
}); //处理图片
//gulp.task('images', function() {
// return gulp.src(['pic/**/*.png','pic/**/*.jpg'])
// .pipe(cache(imagemin({ optimizationLevel: 5, progressive: true, interlaced: true })))
// .pipe(gulp.dest('images'))
// .pipe(notify({ message: 'Images task complete2' }));
//}); //默认执行
gulp.task('default', function() {
gulp.start('styles', 'scripts');
}); // 监测变更执行gulp
gulp.task('watch', function() {
gulp.watch('style/**/*.scss', ['styles']);//处理样式
gulp.watch('script/**/*.js', ['scripts']);//处理js
//gulp.watch('pic/**', ['images']);//处理图片
// Create LiveReload server
livereload.listen();
// Watch any files in assets/, reload on change
gulp.watch(['style/**/*.scss','script/**/*.js']).on('change', livereload.changed);
});

9、执行gulp,命令行指定项目目录后执行:gulp+回车=进行单次编译

10、gulp watch监听文件修改自动执行,Ctrl+C停止监听

以上内容来自网络整理及实际操作,如有不当欢迎讨论

gulp的安装和使用的更多相关文章

  1. 前端开发构建工具gulp的安装使用

    曾几何时还在使用grunt作为前端的构建工具,直到有一天同事向我推荐了gulp,在这里博主将不讨论gulp与grunt各自优势的比较,只为大家介绍gulp如何安装和使用. Gulp 是用 nodejs ...

  2. gulp的安装以及使用详解,除了详细还是详细

    安装gulp: 1. 创建本地包管理环境: 使用npm init命令在本地生成一个package.json文件,package.json是用来记录你当前这个项目依赖了哪些包,以后别人拿到你这个项目后, ...

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

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

  4. 第210天:node、nvm、npm和gulp的安装和使用详解

    一.node 1.什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行J ...

  5. gulp的安装和配置

    gulp的安装和使用方法 1先是有node为前提的, 2安装淘宝镜像 2.1因为很多npm包都是国外的,所以安装起来很慢,所以我们可以利用淘宝的镜像服务器来进行安装后续的包,速度和成功率会高很多.  ...

  6. gulp的安装以及less插件安装与使用

    1.安装node.js 下载地址:http://nodejs.cn/download/ 这时我们输入 node -v  以及  npm -v  检查是否安装成功. 2.为了提高后续使用的快速,我们安装 ...

  7. gulp 打包安装

    Ooo_My_God发表于2015-02-24 分类:构建工具 阅读(41103) 评论(166) 简介: gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行 ...

  8. Gulp的安装

    Gulp 是前端自动化开发工具,我们可以用它提高开发效率. 它有以下用途: 压缩js.压缩css.压缩less.压缩图片等功能 首先我们开始安装Gulp Gulp是基于node来实现的,所以应该先安装 ...

  9. gulp 之一 安装及简单CSS,JS文件合并压缩

    最近研究了一下gulp构建工具,发现使用起来比grunt顺手一些.(个人感受),以下是grunt和gulp构建方式和原理: grunt 基于文件方式构建,会把文件先写到临时目录下,然后进行读文件,修改 ...

随机推荐

  1. 规则引擎.Net Core

    .Net Core 环境下构建强大且易用的规则引擎 https://www.cnblogs.com/chenug/p/9160397.html 本文源码: https://github.com/jon ...

  2. NET Core源代码通过Autofac实现依赖注入

    查看.NET Core源代码通过Autofac实现依赖注入到Controller属性   阅读目录 一.前言 二.使用Autofac 三.最后 回到目录 一.前言 在之前的文章[ASP.NET Cor ...

  3. C#微信支付

    回归主题,16年1月初我对微信开发比较好奇,由于自己是一个比较喜欢钱的人,所以对支付功能颇为冲动,就用公司信息在微信平台申请了一个服务号,还给腾讯打赏了300大洋做了下认证,抽空看了下微信支付官方的文 ...

  4. Java基础(Java概述、环境变量、注释、关键字、标识符、常量)

    第1天 Java基础语法 今日内容介绍 u Java开发环境搭建 u HelloWorld案例 u 注释.关键字.标识符 u 数据(数据类型.常量) 第1章 Java开发环境搭建 1.1 Java概述 ...

  5. 获取url的参数值

    var url=location.search; //获取url中从?开始的所有字符 var  theRequest=new Object();//定义一个对象来存放url中的参数 if( url.i ...

  6. Hbase region查找过程

    HBase的table是该region切分的,client操作一个row的时候,如何知道这个row对应的region是在哪台Region server上呢?这里有个region location过程. ...

  7. virtualapk爬坑心得

    1.宿主和插件的工程build.gradle必须是 com.android.tools.build:gradle:2.1.3 gradle-wrapper 必须是 gradle-2.14.1-all ...

  8. equals()方法详解

    Java语言中equals()方法的使用可以说比较的频繁,但是如果轻视equals()方法,一些意想不到的错误就会产生.哈哈,说的有点严重了~ 先谈谈equals()方法的出身.equals()方法在 ...

  9. Python +selenium之集成测试报告与unittest单元测试

    随着软件不断迭代,对应的功能也会越来越多,从而对应的测试用例也会呈指数增长.如果将全部的测试用例集成在一个文件中就会显得特别的臃肿而且维护成本也会很高. 一个很好的放大就是将这些测试yo你给里按照功能 ...

  10. UVA 11093 Just Finish it up 环形跑道 (贪心)

    有一个环形跑道,上面有n个加油站,到i号加油站可以加pi的油,跑到下一站要花费qi的油,起点任意选,问是否有一个起点可跑完整个跑道. 从i开始跑,如果遇到某个站j不能跑了,那么从i到j之间的站开始跑, ...