安装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. css中的各类问题

    1.水平垂直居中 一.水平居中 (1)行内元素解决方案 只需要把行内元素包裹在一个属性display为block的父层元素中,并且把父层元素添加如下属性即可: .parent { text-align ...

  2. scrapy 一些设置和问题

    scrapy设置ua池 设置后在setting启用 DOWNLOADER_MIDDLEWARES = { 'laogou.middlewares.LaogouDownloaderMiddleware' ...

  3. dtexec命令执行SSIS包

    默认情况下,同时安装了 64 位和 32 位版本的 Integration Services 命令提示实用工具的 64 位计算机将在命令提示符处运行 32 位版本.运行 32 位版本的原因是:在 PA ...

  4. java join 方法的使用

    在很多情况下,主线程创建并启动子线程,如果子线程中要进行大量的耗时运算,主线程往往将早于子线程结束之前结束.这时,如果主线程想等待子线程执行完成之后再结束,比如子线程处理一个数据,主线程要取得这个数据 ...

  5. @ConfigurationProperties

    功能 将属性文件与一个Java类绑定,属性文件中的变量与Java类中的成员变量一一对应,无需完全一致. 如需将 @ConfigurationProperties 注解的目标类添加到Spring IOC ...

  6. If people in the communications only think about gains and losses of interest, then the pleasure of knowing each other will cease to exist.

    If people in the communications only think about gains and losses of interest, then the pleasure of ...

  7. 关于IT公司招聘的一个思考

    作者:朱金灿 来源:http://blog.csdn.net/clever101 21世纪什么最贵?人才!相信这是很多IT公司管理者的深刻感悟.对于IT公司而言,找到合适的人才往往不能单靠人事部门,一 ...

  8. Python+selenium之测试报告(2)

    # -*- coding: utf-8 -*- import HTMLTestReport import HTMLTestRunner import os import sys import time ...

  9. pc端常见布局---水平居中布局 单元素定宽

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. COGS 147. [USACO Jan08] 架设电话线

    ★★☆   输入文件:phoneline.in   输出文件:phoneline.out   简单对比时间限制:1 s   内存限制:16 MB Farmer John打算将电话线引到自己的农场,但电 ...