gulp 安装

1 检测电脑有没有安装node

执行

$ node  -v
$ npm -v

如果没有安装的话,可以到https://nodejs.org/en/download/下载安装。

2 全局安装gulp

$ npm install --global gulp

3 给对应的项目安装gulp

执行

$ npm install gulp --save-dev

4 初始化项目目录

执行 $ npm init 生成 package.json

在对应的根目录下创建 gulpfile.js

文件中的基本内容为:

var gulp = require('gulp');
gulp.task('default', function() {
// place code for your default task here
});

运行gulp

$ gulp

安装对应的 package

下面都以less的自动编译功能需求为例子

这里介绍需要的package

gulp-less

gulp的less插件

安装方法:

$ npm install gulp-less

简单使用举例:

var less = require('gulp-less');
var path = require('path'); gulp.task('less', function () {
return gulp.src('./less/**/*.less')
.pipe(less({
paths: [ path.join(__dirname, 'less', 'includes') ]
}))
.pipe(gulp.dest('./public/css'));
});

常用参数:

paths: 用于@import 指令的路径的数组。

plugins: less插件的数组。举例如下:

less 现在支持plugins,这可以增加额外功能

var LessAutoprefix = require('less-plugin-autoprefix');
var autoprefix = new LessAutoprefix({ browsers: ['last 2 versions'] }); return gulp.src('./less/**/*.less')
.pipe(less({
plugins: [autoprefix]
}))
.pipe(gulp.dest('./public/css'));

参考网站:

http://lesscss.org/usage/#plugins,

https://www.npmjs.com/package/gulp-less

http://lesscss.org/#using-less-configuration

http://lesscss.org/usage/#plugins

gulp-sourcemaps

gulp-less通常和gulp-sourcemaps一起使用产生对应的文件资源图,这里需要初始化gulp-sourcemaps优先运行gulp-less编译,然后写资源图,例如:

var sourcemaps = require('gulp-sourcemaps');
gulp.src('./less/**/*.less')
.pipe(sourcemaps.init())
.pipe(less())
.pipe(sourcemaps.write())
.pipe(gulp.dest('./public/css'));

默认情况下,gulp-sourcemaps编写内嵌在被编译的css文件里的资源图,为了将它们写在单独的文件里,可以在sourcemaps.write()里指定相对的文件路径。

var sourcemaps = require('gulp-sourcemaps');
gulp.src('./less/**/*.less')
.pipe(sourcemaps.init())
.pipe(less())
.pipe(sourcemaps.write('./maps'))
.pipe(gulp.dest('./public/css'));

gulp-notify

是gulp中基于vinyl文件或者使用节点通知模块的各种电脑操作系统报的错或者发送的信息,给出对应的通知和提醒。

安装:

npm install --save-dev gulp-notify

然后将其放入gulpfile.js

var notify = require("gulp-notify");
gulp.src("./src/test.ext")
.pipe(notify("Hello Gulp!"));

或者:

var notify = require("gulp-notify");
gulp.src("./src/test.ext")
.pipe(notify("Found file: <%= file.relative %>!"));

gulp-plumber

阻止数据流因为其他gulp插件的错误提醒而中断。

安装:npm install --save-dev gulp-plumber

多与上述 gulp-notify中的onError()方法一同出现。

gulp.src("../test/fixtures/*")
.pipe(plumber({errorHandler: notify.onError("Error: <%= error.message %>")}))
.pipe(through(function () {
this.emit("error", new Error("Something happend: Error message!"))
}));

参考网站:https://www.npmjs.com/package/gulp-notify

gulp模块的方法

src()

用于产生数据流,可以传入参数,也就是所要处理的文件,参数的写法有:

less/example.less
less/*.less less文件夹下的所有后缀为less文件
less/**/*.less less目录及其所有子目录中的所有后缀名为less的文件。
!less/example.less 除了example.less以外的所有文件。
*.+(js css):匹配项目根目录下,所有后缀名为js或css的文件。

改参数也可以是一个数组,指定多个成员,例如:

gulp.src(['less/*.less','less/*.min.less'])

dest()

该方法将管道的输出写入文件,同时将这些输出继续输出,所以可以依次调用多次dest方法,将输出写入多个目录。如果有目录不存在,将会被新建。

dest方法还可以接受第二个参数,表示配置对象。

gulp.dest('build', {
cwd: './app',
mode: '0644'
})

配置对象有两个字段。cwd字段指定写入路径的基准目录,默认是当前目录;mode字段指定写入文件的权限,默认是0777

watch()

watch方法用于指定需要监视的文件。一旦这些文件发生变动,就运行指定任务。

gulp.task('watch', function () {
gulp.watch('templates/*.tmpl.html', ['build']);
});

参考网站:http://javascript.ruanyifeng.com/tool/gulp.html

gulp基础使用总结的更多相关文章

  1. gulp基础操作实践

    按照gulp中文文档对gulp基础操作的一些实践练习,记录以防忘掉. 一,选择并输出文件:gulp.src(globs[,options]) eg:gulp.src('src/less/index.l ...

  2. Gulp基础

    1.什么是gulp? gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器. 2.为什么使用gulp? gulp不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工 ...

  3. gulp 基础运用

    全局安装gulp $npm install --global gulp 作为项目的开发依赖安装 //--save-dev 开发依赖,储存在package.json的devDependencies中,如 ...

  4. Gulp基础知识

    首先,我们需要了解Gulp能做些什么? 编译 sass                                        sass是什么?(使CSS可以用编程的方式写,加快我们开发的速度) ...

  5. gulp.基础

    1.安装 全局安装 npm install --global gulp 作为项目的开发依赖安装 npm install gulp --save-dev 2.在根目录下创建一个名为gulpfile.js ...

  6. gulp基础使用及进阶

    提示:路径中不允许出现中文,否则scss编译会出错,大概. 按照惯例,先检查一下Node.js.npm(cnpm).gulp的版本号 1.新建package.json 我们可以通过手动新建这个配置文件 ...

  7. 【gulp】工作中的实战

    写这篇文章的目的是为了以后的项目中懒得再去配gulp,直接可以拿这篇博客中的来用,因为有时候配置还是挺烦人的. gulp相关插件的介绍 用法比较简单,假设大家都会用gulp,下面主要介绍一下一些插件的 ...

  8. Gulp真实项目用例

    包括了less预编译,css压缩,html文件include引入,js混淆压缩,本地开发热刷新服务器,html压缩,版本号添加 github地址: gulpfile.js var gulp = req ...

  9. gulp学习-gulpfile

    安装gulp 假设已经安装了node 和npm (淘宝的cnpm很适合国内使用). 1.首页全局安装gulp. 1 npm install --global gulp 2.其次局部安装gulp.(注: ...

随机推荐

  1. Android Checkbox Example

    1. Custom String 打开 “res/values/strings.xml” 文件, File : res/values/strings.xml <?xml version=&quo ...

  2. [AngularJS] Accessing Services from Console

    Using the Chrome console, you can access your AngularJS injectable services. This is down and dirty ...

  3. IOS格式规范

    IOS格式规范 目录 概述 日期格式 NSDateFormatter格式说明 概述 日期格式 声明时间格式:NSDateFormatter *date_formatter = [[NSDateForm ...

  4. 基于html5实现的愤怒的小鸟网页游戏

    之前给大家分享一款基于html5 canvas和js实现的水果忍者网页版,今天给大家分享一款基于html5实现的愤怒的小鸟网页游戏.这款游戏适用浏览器:360.FireFox.Chrome.Safar ...

  5. Python操作MySQL之SQLAlchemy

      SQLAlchemy是Python编程语言下的一款ORM框架,该框架建立在数据库API之上,使用关系对象映射进行数据库操作,简言之便是:将对象转换成SQL,然后使用数据API执行SQL并获取执行结 ...

  6. 在提交SVN时有时候会报svn is already locked 错误

    svn is already locked 解决方案: 如题所述经常在更新代码的时候会产生这样的问题!并且在对应的目录上操作Clean Up 没有任何的效果!如下解决方法. 在出错文件夹下,鼠标右键T ...

  7. solr中竞价排名实现

    转载:http://mxsfengg.iteye.com/blog/308335 通常,lucene只返回与用户查询相关的文档,搜索的结果,跟lucene对文档评分有关.而在现实的查询中,我们有些时候 ...

  8. [PHP] htaccess 探秘

    .htaccess访问控制(Allow/Deny) 1. 验证是否支持.htaccess 在目录下新建一个.htaccess 文件,随笔输入一串字符(毫无意义),看看什么反应,如果是500错误,说明目 ...

  9. 【高德地图开发4】---增加覆盖物setMapTextZIndex

    高德地图 Android SDK 允许用户将添加的线.面等覆盖物设置在地图底图文字的上方或下方. 具体实现是使 用 AMap 类的 setMapTextZIndex() 方法来设置地图底图文字的z轴指 ...

  10. 【Linux/Ubuntu学习6】unbuntu 下载android源码

    在Windows下安装Cygwin,通过Cygwin也可在Windows里通过本文的下载步骤下载Android源码. 以下为在Ubuntu下下载Google Android4.4源码的步骤: 1. 安 ...