gulp watch 实现监听不仅需要package.json文档,还需要gulpfile.js文档。否则无法实现。

1.gulp的安装

1.1 首先必须先安装node.js。这个可以参考之前的博客《node.js的安装配置》。

1.2 按照全局方式,在node.js的目录文件夹下安装全局的gulp

npm install -g gulp

1.3 全局gulp安装好后,在需要gulp的项目里还要单独再安装一次。把目录切换到项目的目录下面,执行命令。

npm install gulp

如果想把gulp写进package.json中,执行命令

npm install gulp --save-dev
npm install gulp --save

这个在博客《package.json文档》中有详细描写。

2.gulp的使用

2.1 建立gulpfile.js文档

gulp需要一个文件作为它的配置文件,就是gulpfile.js。此时我们的目录结构如下:

3.gulp的API

因为,gulp的API文档网上都有,所以不详细介绍,这里只是介绍一下常用的一些。

3.1 gulp.task()

gulp.task()方法用来定义任务,其语法是:

gulp.task('name', ['deps1','deps2','deps3'],fn);

其中

  • name 是任务名。
  • deps 是当前定义的任务需要依赖的其他任务,为一个数组。当前定义的任务会在所有依赖的任务执行完毕后才开始执行。如果没有依赖,则可省略这个参数。
  • fn 为任务函数,我们把任务要执行的代码都写在里面。该参数也是可选的。

注意:如果任务相互之间没有依赖,任务会按你书写的顺序来执行,如果有依赖的话则会先执行依赖的任务。

3.2 gulp.src()

gulp.src()指定需要处理的源文件的路径,前一级的输出,直接变成后一级的输入,gulp.src返回当前文件流至可用插件。其语法是:

gulp.src(["globs"]);

其中,glops是需要处理的源文件匹配符的路径。类型:字符串string或是字符串数组stringArray。(必填)

通配符路径匹配示例:

  • src/a.js:指定具体文件;
  • *:匹配所有文件,例:src/*.js(包含src下的所有js文件);
  • **:匹配0个或多个子文件夹,例:src/**/*.js(包含src的0个或多个子文件夹下的js文件);
  • {}:匹配多个属性,例:src/{a,b}.js(包含a.js和b.js文件) src/*.{jpg,png,gif}(src下的所有jpg/png/gif文件);
  • !:排除文件,例:!src/a.js(不包含src下的a.js文件);

3.3 gulp.dest()

gulp.dest()是指定处理完后文件输出的路径,其语法是:

gulp.dest("输出路径")

3.4 gulp.watch(glob [, opts], tasks) or gulp.watch(glob [, opts, cb])

tasks 类型(必填)是StringArray需要执行的任务的名称数组;

4.gulpfile.js模板

//引入gulp
var gulp = require('gulp'); //引入需要的组件
var watch = require("gulp-watch"); //gulp监听
var browserSync = require('browser-sync'); //浏览器自动刷新
var reload = browserSync.reload; //重新加载
var del = require("del"); //删除
var sass = require("gulp-ruby-sass"); //编译sass
var uglify = require("gulp-uglify"); //通过UglifyJS来压缩JS文件
var rename = require("gulp-rename"); //重命名文件的插件,当要把一个文件存储为不同版本时可以使用。比如在需要一个style.css同时你有需要一个style.min.css。一般配合js、css压缩使用 //在编译之前删除一些文件
gulp.task("clean",function(cb){
return del(["build/**/*"],cb);
}); //编译sass,sass任务会编译目录下的scss文件,并把编译完成的css文件保存到css/目录中
gulp.task("sass",function(){
return sass("*.scss")
.on("error",function(err){
console.error("Error!"+err.message);
})
.pipe(gulp.dest("css/"));
}); //压缩js文件
gulp.task('minjs', function() {
gulp.src(['a20161123/tianyi/js/*.js'])
.pipe(uglify())
.pipe(rename({
suffix: '.min'
}))
.pipe(gulp.dest('a20161123/tianyi/js'))
console.info('_____js concat and min: done');
}); //gulp watch监听,实现浏览器自动刷新
gulp.task("watch",function(){
browserSync({
server:{
baseDir:"./"
}
});
gulp.watch('*.scss', ['sass']);
gulp.watch(["*.html","*.css","*.js"],function(){
reload();
});
});

当以上都完成时就可以执行命令了。

  • 在需要运行的项目目录下面输入命令 gulp watch

  • 这时浏览器会自动打开项目中的index.html文档

  • 如果更新了.html 或是 .css 或是 .js 文档,保存后浏览器将会自动刷新网页。这个需要根据gulpfile.js的内容来实现

有道云笔记参考http://note.youdao.com/noteshare?id=45c15fe59e2d2b62a3ff1a6004953f13&sub=A912F00A372F4CB38F19422B39951797

gulpfile.js文档的更多相关文章

  1. 使用node.js 文档里的方法写一个web服务器

    刚刚看了node.js文档里的一个小例子,就是用 node.js 写一个web服务器的小例子 上代码 (*^▽^*) //helloworld.js// 使用node.js写一个服务器 const h ...

  2. JS文档生成工具:JSDoc 介绍

    JSDoc是一个根据javascript文件中注释的信息,生成API文档的工具.生成的文档是html文件.类似JavaDoc和PHPDoc. 用法 /** 一坨注释之类的 */JSDoc会从/**开头 ...

  3. JS文档和Demo自动化生成工具 - SmartDoc发布

    曾几何时,当你码神附体,一路披荆斩棘的完成代码后,带着“一码在手,天下我有”的傲然环顾之时,却发现单元测试.API文档.Demo实例陆续向你砸来,顿时有木有一种冰水挑战后的感觉.而这时你应该:哟哟,快 ...

  4. 使用YUIDoc生成JS文档

    其实YUIDoc主页已经写的比较清晰了,但有一些概念和细节再点出一些注意的地方. 目前最新的YUIDoc使用nodejs进行开发安装和使用都非常的方便. 我们只需要将我们的代码加上必要的注释,便可以很 ...

  5. js文档系统-jsdoc-docdash

    一.参考文档 模版:https://github.com/clenemt/docdash 例子:http://clenemt.github.io/docdash/index.html jsdoc:ht ...

  6. Flv.js文档使用随记

    关键字:Flv.js | Flv js | Flv-js | HTML5 FLV Player | 0x001: 前言以下涉及到 flv.js 所有内容均是V1.5.0版本内的,如方法.属性.常量.监 ...

  7. tweenmax.js 文档

    TweenMax 参考http://bbs.9ria.com/thread-214959-1-1.html TweenMax 可能是很多人都用的,包括我 但 是最近发现大量的运用就总会产生这样或那样的 ...

  8. js文档视口高度函数

    objwin=window;objBody=document.body;objDel=document.documentElement;   关于弹窗时候用到 function getPageHeig ...

  9. js文档碎片

    //文档碎片:类似一个临时的文档,要所有要加的dom元素先放在这里,达到不要每次操作dom元素提高页面效率 var d1 = new Date(); //创建十个段落,常规的方式 ; i < ; ...

随机推荐

  1. Beta发布——视频博客

    1.视频链接 视频上传至优酷自频道,地址链接:http://v.youku.com/v_show/id_XMzkzNzAxNDk2OA==.html?spm=a2hzp.8244740.0.0 2.视 ...

  2. Scrum立会报告+燃尽图(Beta阶段第五次)

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2387 项目地址:https://coding.net/u/wuyy694 ...

  3. 《JavaScript》函数

    function foo(a,b){return a+b}//函数申明 var foo=function(){}//函数表达式赋值 var foo=new Function('a','b','retu ...

  4. 03 JAVA IO

    java.io包中定义了多个流类型来实现输入输出功能,以不同的角度进行分类: 按数据流的方向不同可以分为输入流和输出流 按处理数据单位不通可以分为字节流和字符流 按照功能不同可以分为节点流和处理流 所 ...

  5. Beta版冲刺前准备

    [团队概要] 团队项目名:小葵日记 团队名:日不落战队 队员及角色: 队员 角色 备注 安琪 前端工程师 队长 佳莹 前端工程师 智慧 后端工程师 章鹏 后端工程师 语恳 UI设计师 炜坤 前端工程师 ...

  6. Scrum 项目准备3.0

    SCRUM 流程的步骤2: Spring 计划 1. 确保product backlog井然有序.(参考示例图1) 2. Sprint周期,一个冲刺周期,长度定为两周,本学期还有三个冲刺周期. Spr ...

  7. 性能测试工具Loadrunner使用经验小结(原创更新版)

    1. 引言 1.1. 简介 loadrunner是一种预测系统行为和性能的负载测试工具,它可以轻松创建虚拟用户.创建真实的负载.定位性能问题.重复测试保证系统的高性能 globa-100的注册码:AE ...

  8. pip使用国内镜像源

    windows版 1.在windows文件管理器中,输入 %APPDATA% 2.在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件 3.在新建的pip.ini文件中输入以下 ...

  9. Spring Cloud Zuul(服务网关)

    新建应用:api-gateway pom.xml <?xml version="1.0" encoding="UTF-8"?> <projec ...

  10. 【OpenGL】使用FreeType库加载字体并在GL中绘制文字

    FreeType用起来比较麻烦,这里写了一份简单的示例代码,仅供参考. 实现了FT库生成字符位图,并上传到GL纹理. 实现了字符位图缓存功能,多个字符图像保存在同一个纹理中. 实现了简单的字体管理框架 ...