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记录的更多相关文章

  1. 前端自动化构建工具gulp记录

    一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ...

  2. 前端构建工具gulp使用

    前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中文文档 https://g ...

  3. (转载)前端构建工具gulp使用

    前端构建工具gulp使用 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gulp中 ...

  4. 前端构建工具gulp

    前端构建工具gulp使用   前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 http://www.gulpjs.com.cn/ Gul ...

  5. 前端构建工具gulp使用 (转)

    http://www.cnblogs.com/starof/p/5194622.html 前端自动化流程工具,用来合并文件,压缩等. Gulp官网 http://gulpjs.com/ Gulp中文网 ...

  6. H5项目开发分享——用Canvas合成文字

    以前曾用Canvas合成.裁剪.图片等<用H5中的Canvas等技术制作海报>.这次用Canvas来画文字. 下图中"老王考到驾照后"这几个字是画在Canvas上的,与 ...

  7. 小身材大用途,用PrimusUI驾驭你的页面

    “PrimusUI”是自己在借鉴了如今网上很多开源的UI库,再经过自己整理加工的一个简单代码集合. 每个功能块的CSS代码都很少,力求简单易懂,低门槛,代码可根据自己实际情况轻易修改,改到符合自己场景 ...

  8. 用CSS3动画,让页面动起来

    以前就听说过有个库,叫animate.css,但是自己并没有在实际项目中使用过,这次正好要做个招聘页面,得以利用一下这个库,在经常会卡顿的UC浏览器中也能流畅执行. 扫描下面的二维码,可以看到在线的d ...

  9. PrimusUI

    小身材大用途,用PrimusUI驾驭你的页面 “PrimusUI”是自己在借鉴了如今网上很多开源的UI库,再经过自己整理加工的一个简单代码集合. 每个功能块的CSS代码都很少,力求简单易懂,低门槛,代 ...

随机推荐

  1. iReport+jasperreport创建子表的几种方式(1)

    在制作报表的过程中,子表是不可缺少的.今天就研究了一下制作子表的几种方式 一.连接数据库创建子表 以MySQL为例: 我的数据源数据库中的表 watermark/2/text/aHR0cDovL2Js ...

  2. UML类图简明教程

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:allenwells@163.com 博客:http://blog.csdn.net/allenwells Github:https://github.co ...

  3. Java性能小技巧

    局部决定总体. 一个应用的总体性能取决于每一个组件的性能. 以下是一些帮助你提高应用性能的Java编程技巧: 编程技巧 原因及策略 避免反复创建对象 为什么: 更少的对象会须要更少的垃圾回收 使用的空 ...

  4. Delphi列表控件TListView定位到某一行。

    ListView1.Item[100].Focused = true; //定位到索引为100的行ListView1.Item[100].Selected = true; ListView1.Item ...

  5. php通过curl下载远程图片实例

    <?php $url = 'http://mf1905.com/upload/video_img/df3074c98ec5124ad47c52ff59f74e04_middle.jpeg'; f ...

  6. js关于变量作为if条件的真假问题

    var a = ""; if(a){ ..... }else{ .....} 以下情况会被认为返回false: "" 空的字符串 为 0 的数字 为 null ...

  7. synchronized同步关键字

    参考:http://blog.csdn.net/luoweifu/article/details/46613015 synchronized是Java中的关键字,是一种同步锁.它修饰的对象有以下几种: ...

  8. 【题解】P1613跑路

    [题解]P1613 鸽王跑路 一道思维好题! 考虑\(2^k\)的传递性.直接64遍\(floyd\)求所有\(2^k\)的路径,转移方程是 \(dp(i,j,k)=[dp[i][t][k-1]\)& ...

  9. centos 7 官网安装 PostgreSQL

    https://www.postgresql.org/download/linux/redhat/

  10. APP 商城功能

    1.同步系统时间2.滑动解锁3.九宫格加锁解锁4.APP启动加载效果5.首次启动APP的欢迎广告6.APP顶部幻灯轮播7.下拉刷新8.商品数据加载9.商品分类.搜索10.模拟键盘11.商品按价格.人气 ...