gulp基础使用总结
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基础使用总结的更多相关文章
- gulp基础操作实践
按照gulp中文文档对gulp基础操作的一些实践练习,记录以防忘掉. 一,选择并输出文件:gulp.src(globs[,options]) eg:gulp.src('src/less/index.l ...
- Gulp基础
1.什么是gulp? gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器. 2.为什么使用gulp? gulp不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工 ...
- gulp 基础运用
全局安装gulp $npm install --global gulp 作为项目的开发依赖安装 //--save-dev 开发依赖,储存在package.json的devDependencies中,如 ...
- Gulp基础知识
首先,我们需要了解Gulp能做些什么? 编译 sass sass是什么?(使CSS可以用编程的方式写,加快我们开发的速度) ...
- gulp.基础
1.安装 全局安装 npm install --global gulp 作为项目的开发依赖安装 npm install gulp --save-dev 2.在根目录下创建一个名为gulpfile.js ...
- gulp基础使用及进阶
提示:路径中不允许出现中文,否则scss编译会出错,大概. 按照惯例,先检查一下Node.js.npm(cnpm).gulp的版本号 1.新建package.json 我们可以通过手动新建这个配置文件 ...
- 【gulp】工作中的实战
写这篇文章的目的是为了以后的项目中懒得再去配gulp,直接可以拿这篇博客中的来用,因为有时候配置还是挺烦人的. gulp相关插件的介绍 用法比较简单,假设大家都会用gulp,下面主要介绍一下一些插件的 ...
- Gulp真实项目用例
包括了less预编译,css压缩,html文件include引入,js混淆压缩,本地开发热刷新服务器,html压缩,版本号添加 github地址: gulpfile.js var gulp = req ...
- gulp学习-gulpfile
安装gulp 假设已经安装了node 和npm (淘宝的cnpm很适合国内使用). 1.首页全局安装gulp. 1 npm install --global gulp 2.其次局部安装gulp.(注: ...
随机推荐
- Android 数据库打包随APK发布
有些时候我们的软件用到SQLite数据库,这个时候怎么把一个做好的数据库打包进我们的APK呢,其实很简单,就是把我们的数据库文件放到我们的手机里,所以不必局限在哪个地方写这个代码,在第一次创建数据库的 ...
- 源码级分析Android系统启动流程
首先看一下Android系统的体系结构,相信大家都不陌生 1.首先Bootloader引导程序启动完Linux内核后,会加载各种驱动和数据结构,当有了驱动以后,开始启动Android系统,同时会加载用 ...
- cocos2d-x jsbinding 资源下载实现
cocos2dx没有直接给出资源下载的api,可能是因为资源的管理每个项目的需求不太一样,所以完整的资源下载功能需要我们自己去实现. 资源下载分为两部分,一部分是资源请求,另一部分是资源文件写入.资源 ...
- 通过Javascript模拟登陆Windows认证的网站
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>模拟登陆</title ...
- Linux中的文件描述符与打开文件之间的关系
Linux中的文件描述符与打开文件之间的关系 导读 内核(kernel)利用文件描述符(file descriptor)来访问文件.文件描述符是非负整数.打开现存文件或新建文件时,内核会返回一个文件描 ...
- zookeeper的异常处理(Disconnected, SyncConnected, Expired)
最近系统中使用zookeeper支持三个功能:全量/增量索引的消息通知:搜索活跃节点检查:分布式锁做索引切换同步. 线上服务对稳定性要求较高,包括各种异常情况,如网络中断导致连接断开,系统load过高 ...
- The LMAX disruptor Architecture--转载
原文地址: LMAX is a new retail financial trading platform. As a result it has to process many trades wit ...
- jQery无缝滚动效果
思路: 赋值所有li,添加到ul末尾,重新计算ul宽度 每次移动一个固定的值,当超出一半时,将ul拉回原位 以下代码 <!DOCTYPE html> <html> <he ...
- 测试 IE 浏览器兼容性 VirtualBox + modern.ie
VirtualBox 是开源的虚拟机软件,常用的虚拟机软件还有 VMware / Hyper-V / Paralles Desktop . modern.ie 是微软官方提供的用于测试网页在各版本 I ...
- html 中根据后台参数显示 相应的样式 EL表达式
<li><a class="${return_product_statu==-1||return_product_statu==null?'switch_xz':'none ...