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.(注: ...
随机推荐
- HDU 1504 Disk Tree
转载请注明出处:http://blog.csdn.net/a1dark 分析:查了一下这题.发现网上没有什么关于这道题的解题报告.其实题目意思挺好懂的.就是给你一些文件的目录结构.然后让你把它们组合在 ...
- Android Studio中导入第三方库
之前开发Android都是使用的eclipse,近期因为和外国朋友Timothy一起开发一款应用,他是从WP平台刚切换使用Android的,使用的开发环境时Android Studio,为了便于项目的 ...
- Matlab程序怎样打包
本人安装的版本号是MATLAB(R2010b) 打包过程例如以下: MATLAB命令窗体输入deploytool,打开一个Eeployment Project的窗体: 1.在Name输入你想要打包后的 ...
- JRebel_修改class后无法正确调试问题解决【2014-03-12】
原文地址:http://www.cnblogs.com/hbbbs/p/3596179.html 现象 修改了class,编译后,JRebel自动装载到Web容器中.但此时调试这个类会发现无法正常调试 ...
- 把你的旧笔记本变成 Chromebook
导读 Linux 之年就在眼前.根据报道,Google 在 2016 年第一季度卖出了比苹果卖出的 Macbook 更多的 Chromebook.并且,Chromebook 即将变得更加激动人心.在 ...
- java中如何忽略字符串中的转义字符--转载
原文地址:http://my.oschina.net/u/1010578/blog/366252 起因 这几天工作上需要跟另一个同事联调rest接口,我这边是java他是php,返回报文是js ...
- Tfs服务器迁移(更改IP)后客户端(vs2013)配置方法
一.前言 公司开发项目需要进驻客户现场,局域网中的tfs代码服务器有时会有修改ip的情况发生.服务器ip修改后在vs2013中更改服务器ip地址非常麻烦,有些时候需要将代码重新进行映射.多次试验后将可 ...
- JQuery实现回车代替Tab键(按回车跳到下一栏)
一个提交按钮以后,用户如果按了键盘的回车键,默认情况下,就会提交这个表单了.这样对于用户输入各个表单项目,用户体验很不好,输入完一个项目,或者用鼠标选择下一个项目,或者用键盘的Tab键选中下一个项目. ...
- DIH中添加不同的数据源
需求:从mysql数据库中读取一个知识记录,从记录表中的字段值中获取一个文件路径,读取xml文件,xml文件中可能包含多个文档内容.建立索引. xml文件样例: <?xml version=&q ...
- Fragment+FragmentTabHost组件实现常见主页面(仿微信新浪)
采取的方法是Fragment+FragmentTabHost组件来实现这种常见的app主页面的效果 首先给出main.xml文件 <?xml version="1.0" en ...