gulp记录
npm install gulp -g //全局安装gulp
gulp -v //此处若有问题,配置环境变量,npm config get prefix得到路径
npm init //新建nodejs项目配置文件package.json,其中项目name、version、description为必填项
package.json
{
    "name": "project",
    "version": "1.0.0",
    "description": "this is a test",
    "main": "gulpfile.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
        "browser-sync": "^2.14.0",
        "del": "^2.2.2",
        "gulp": "^3.9.1",
        "gulp-cache": "^0.4.5",
        "gulp-clean-css": "^2.0.12",
        "gulp-if": "^2.0.1",
        "gulp-imagemin": "^3.0.3",
        "gulp-less": "^3.1.0",
        "gulp-minify-css": "^1.2.4",
        "gulp-sass": "^2.3.2",
        "gulp-uglify": "^2.0.0",
        "gulp-useref": "^3.1.0",
        "run-sequence": "^1.2.2"
    }
}
npm install gulp --save-dev //当前项目安装gulp,--save将保存配置信息至package.json,-dev保存至package.json的devDependencies节点
npm install gulp-sass --save-dev //安装gulp-sass等等
配置gulpfile.js,这里的名字要和package.json的main指定的js文件对应起来
var gulp = require('gulp');//告知node去node_modules中查找gulp包,先局部查找,找不到就全局查找,找到赋予gulp变量我们就可以使用啦
var sass = require('gulp-sass');
var browserSync = require('browser-sync');
var useref = require('gulp-useref');
var uglify = require('gulp-uglify');
var gulpIf = require('gulp-if');
var cleanCSS = require('gulp-clean-css');
var imagemin = require('gulp-imagemin');
var cache = require('gulp-cache');
var del = require('del');
var runSequence = require('run-sequence');
gulp.task('task-name',function(){//task-name是给你任务起的名字,稍后运行gulp task-name将会执行后面的函数
    console.log('Hello World');
});
gulp.task('sass', function(){
    return gulp.src('src/sass/**/*.scss')//Gets all files ending with .scss in src/sass and children dirs
    .pipe(sass()) // Using gulp-sass
    .pipe(gulp.dest('src/sass-css'))//在执行命令之后将生成对应的css文件存放到相应路径,新添文件目录后重新编译下即可
    .pipe(browserSync.reload({//每次css文件更改都刷新一下浏览器
        stream: true
    }))
});
//创建一个broswerSync任务,我们需要告知它,根目录在哪里
gulp.task('browserSync', function() {
    browserSync({
        server: {
            baseDir: 'src'
        }
    })
})
//gulp.watch('src/sass/**/*.scss',['sass']);
//通常我们监听的还不只是一个文件,把它变成一个任务:
// gulp.task('watch', function(){
//     gulp.watch('src/sass/**/*.scss', ['sass']);
//     // Other watchers
// })
//在watch任务之前告知Gulp,先把browserSync和Sass任务执行了再说
gulp.task('watch',['browserSync','sass'],function(){
    gulp.watch('src/sass/**/*.scss', ['sass']);
    // Other watchers
    gulp.watch('src/**/*.html',browserSync.reload);//这些目录动了也刷新
    gulp.watch('src/**/*.js',browserSync.reload);
})
// gulp.task('useref',function(){//合并
//     return gulp.src('src/*.html')
//         .pipe(useref())
//         .pipe(gulp.dest('dist'));
// });
// 合并并压缩js
gulp.task('useref', function(){
    return gulp.src('src/*.html')
        .pipe(useref())//顺序!!
        .pipe(gulpIf('*.js', uglify())) // Uglifies Javascript files
        .pipe(gulp.dest('dist'));
});
// 压缩css
gulp.task('minify-css', function() {
    return gulp.src('src/**/*.css')
        .pipe(cleanCSS({compatibility: 'ie8'}))
        .pipe(gulp.dest('dist'));
});
gulp.task('images', function(){
    return gulp.src('src/images/**/*.+(png|jpg|gif|svg)')
        .pipe(imagemin())
        .pipe(gulp.dest('dist/images'))
});
gulp.task('images', function() {
    return gulp.src('src/images/**/*.+(png|jpg|jpeg|gif|svg)')
        // Caching images that ran through imagemin
        .pipe(cache(imagemin({
            interlaced: true,
        })))
        .pipe(gulp.dest('dist/images'))
});
// gulp.task('clean', function() {
//     del('dist');
// });
gulp.task('clean:dist', function(callback){
    return del(['dist/**/*', '!dist/images', '!dist/images/**/*'], callback)
});
// gulp.task('clean', function() {
//     del('dist');
// });
gulp.task('clean', function(callback) {
    del('dist');
    return cache.clearAll(callback);
})
gulp.task('default', function (callback) {
    runSequence(['sass','browserSync', 'watch'],
        callback
    )
});
gulp.task('build', function(callback) {
    runSequence(
        'clean:dist',
        'sass',
        ['useref', 'images','minify-css'],
        callback
    )
})
gulp记录的更多相关文章
- 前端自动化构建工具gulp记录
		一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ... 
- 前端构建工具gulp使用
		前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中文文档 https://g ... 
- (转载)前端构建工具gulp使用
		前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中 ... 
- 前端构建工具gulp
		前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gul ... 
- 前端构建工具gulp使用 (转)
		http://www.cnblogs.com/starof/p/5194622.html 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 ... 
- H5项目开发分享——用Canvas合成文字
		以前曾用Canvas合成.裁剪.图片等<用H5中的Canvas等技术制作海报>.这次用Canvas来画文字. 下图中"老王考到驾照后"这几个字是画在Canvas上的,与 ... 
- 小身材大用途,用PrimusUI驾驭你的页面
		“PrimusUI”是自己在借鉴了如今网上很多开源的UI库,再经过自己整理加工的一个简单代码集合. 每个功能块的CSS代码都很少,力求简单易懂,低门槛,代码可根据自己实际情况轻易修改,改到符合自己场景 ... 
- 用CSS3动画,让页面动起来
		以前就听说过有个库,叫animate.css,但是自己并没有在实际项目中使用过,这次正好要做个招聘页面,得以利用一下这个库,在经常会卡顿的UC浏览器中也能流畅执行. 扫描下面的二维码,可以看到在线的d ... 
- PrimusUI
		小身材大用途,用PrimusUI驾驭你的页面 “PrimusUI”是自己在借鉴了如今网上很多开源的UI库,再经过自己整理加工的一个简单代码集合. 每个功能块的CSS代码都很少,力求简单易懂,低门槛,代 ... 
随机推荐
- D类功放基础简介
			DAC和D类PA的开关时序是先开dac再开D类pa,先关D类pa再关dac 
- myql5.7.7优化配置參数
			# Other default tuning values # MySQL Server Instance Configuration File # ------------------------- ... 
- 自己定义ViewGroup控件(二)----->流式布局进阶(二)
			main.xml <?xml version="1.0" encoding="utf-8"? > <com.example.SimpleLay ... 
- wifi认证Portal开发系列(二):FreeRadius的安装和测试、关联Mysql
			注:本次安装是基于FreeRadius 3版本进行安装配置的,在配置Mysql的过程中,与2版本有些不同.操作系统是CentOS 7 一.准备工作 工具的安装 #安装rz.sz命令用于文件上传 yum ... 
- 解决mysql数据库乱码问题
			MySQL的SQL语言是用于访问数据库的最常用标准化语言.MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小.速 度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选 ... 
- 【翻译自mos文章】关于分区索引:Global, Local, Prefixed and Non-Prefixed
			来源于: Partitioned Indexes: Global, Local, Prefixed and Non-Prefixed (文档 ID 69374.1) APPLIES TO: Oracl ... 
- java利用爬虫技术抓取(省、市(区号\邮编)、县)数据
			近期项目须要用到 城市的地址信息,但从网上下载的xml数据没有几个是最新的地址信息.....数据太老,导致有些地区不全.所以才想到天气预报官网特定有最新最全的数据.贴出代码,希望能给有相同困惑的朋友. ... 
- Color.js 方便修改颜色值
			这并不是npm上比较活跃的clolr包的中文文档,不过它在最后提到了: The API was inspired by color-js. Manipulation functions by CSS ... 
- iOS 10 的杂碎资料
			兼容iOS 10 资料整理笔记 1.Notification(通知) 自从Notification被引入之后,苹果就不断的更新优化,但这些更新优化只是小打小闹,直至现在iOS 10开始真正的进行大 ... 
- python发布IIS
			参考文档 https://segmentfault.com/a/1190000008909201 http://blog.51cto.com/anngle/1922041 https://www.cn ... 
