gulp插件使用
//引入gulp组件
var gulp=require('gulp'); //创建任务
gulp.task('hello',function(){
console.log('hello');
});
//创建另一个任务
gulp.task('world',function(){
console.log('world');
});
//默认执行两个任务
//一个gulpfile.js中只能有一个default
//三种写法,3个参数
/**
* [description] default默认 的写法
* 写法一:gulp.task('default',function(){});
* 写法二:gulp.task('default',['task1','task2','....']);
* 写法三:gulp.task('difault',['task1','task2','...'],function(){});
*
*/
/*gulp.task('default',['hello','world'],function(){
console.log('finish');
});*/
//gulp的具体用法 //拷贝文件
gulp.task('copy-files',function(){
//src:找到源文件 相对于gulpfile.js的路径
//pipe ‘拷贝’ 管道 参数 拷贝完需要做的事
//dest 目标 参数:路径
gulp.src('src/index.html').pipe(gulp.dest('dist'));
});
//只拷贝类型为jpg的文件
gulp.task('copy-images',function(){
gulp.src('src/images/*.jpg').pipe(gulp.dest('dist/img'));
});
//拷贝所有文件
//*表示第1层 **表示第二层 /**/*所有文件
gulp.task('copy-allfiles',function(){
gulp.src('src/images/*').pipe(gulp.dest('dist/img'));
});
//将多个文件的内容拷贝到一个文件夹下
gulp.task('copy-data',function(){
//src路径可以是一个数组['src1','src2'] 不需要的文件在路径前加一个!
gulp.src('src/data/*').pipe(gulp.dest('dist/data'));
});
//监听
/*gulp.task('watch',function(){
//watch()监听 参数1:需要监听的文件 参数2:当监听到变化后完成的方法
gulp.watch('src/index.html',['copy-files']);
});*/
// 停止监听(其他命令) Ctrl+C //引入gulp的插件gulp-connect 这个插件可以启动本地服务
var connect=require('gulp-connect');
gulp.task('server',function(){
//启动本地服务
connect.server({
//设置服务的根路径
root:'dist',
//开启实时更新
livereload:true,
//设置端口 默认8080
port:80
});
});
gulp.task('watch',function(){
gulp.watch('src/index.html',function(){
gulp.src('src/index.html').pipe(gulp.dest('dist')).pipe(connect.reload());
});
});
gulp.task('default',['server','watch']); var concat=require('gulp-concat');
//创建任务合并js文件
gulp.task('concat-js',function(){
gulp.src(['src/js/test1.js','src/js/test2.js']).pipe(concat('vendor.js')).pipe(gulp.dest('dist/js'));
});
//压缩js文件
var uglify=require('gulp-uglify');
gulp.task('uglify-js',function(){
gulp.src(['src/js/test1.js','src/js/test2.js']).pipe(concat('vendor.js')).pipe(uglify()).pipe(gulp.dest('dist/js'));
});
//重命名插件
var rename=require('gulp-rename');
gulp.task('rename-js',function(){
gulp.src(['src/js/test1.js','src/js/test2.js']).pipe(concat('vendor.js')).pipe(gulp.dest('dist/js')).pipe(uglify()).pipe(rename('vendor.min.js')).pipe(gulp.dest('dist/js/'));
});
//合并css
gulp.task('concat-css',function(){
gulp.src(['src/css/style1.css','src/css/style2.css']).pipe(concat('style.css')).pipe(gulp.dest('dist/css'));
});
var minify=require('gulp-minify-css');
gulp.task('minify-css',function(){
gulp.src(['src/css/style1.css','src/css/style2.css']).pipe(concat('style.css')).pipe(rename('style.min.css')).pipe(minify()).pipe(gulp.dest('dist/css'));
});
来到本地路径,创建工程配置文件
npm init
本地安装gulp
npm install gulp --save-dev
让package.json依赖于gulp
安装package.json中依赖了的组件
npm install
安装服务的插件
npm install gulp-connect --save-dev
合并文件的插件
npm install gulp-concat --save-dev
压缩js文件的插件
npm install gulp-uglify --save-dev
给文件重命名的插件
npm install gulp-rename --save-dev
压缩css文件的插件
npm install gulp-minify-css --save-dev
代码目录树
gulp插件使用的更多相关文章
- 常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)
前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本 ...
- gulp 插件
原文链接:http://www.mamicode.com/info-detail-517085.html gulp是什么? http://gulpjs.com/ 相信你会明白的! 与著名的构建工具gr ...
- gulp插件(gulp-jmbuild),用于WEB前端构建
源码地址:https://github.com/jiamao/gulp-jmbuild https://github.com/jiamao/gulp-jmbuild gulp-jmbuild gulp ...
- gulp插件gulp-usemin简单使用
关于什么是gulp,它和grunt有什么区别等问题,这里不做任何介绍.本文主要介绍如何使用gulp-usemin这款插件,同时也会简单介绍本文中用到的一些插件. 什么是gulp-usemin 用来将H ...
- 使用gulp插件来自动刷新页面。
http://itakeo.com/blog/2016/05/19/gulpreload/?none=123 使用gulp插件来自动刷新页面.再也不用修改一次,按一下F5了. 首选通过npm inst ...
- 将less编译成css的gulp插件
简介:gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码, ...
- 如何编写一个gulp插件
很久以前,我们在"细说gulp"随笔中,以压缩JavaScript为例,详细地讲解了如何利用gulp来完成前端自动化. 再来短暂回顾下,当时除了借助gulp之外,我们还利用了第三方 ...
- Gulp 插件及其使用
前端现在有很多的自动打包工具,各有优缺点,而gulp作为其中的一员,也有着很受人们的青睐,简单粗暴,然而gulp本身并没有提供很多的API,真正的一些工作则是靠着插件完成的,本文简单介绍一些常用的gu ...
- gulp插件构建项目 压缩js、css、image、zip、web服务、跨域等插件
推荐一个很好文: https://github.com/lin-xin/blog/issues/2 匹配符 *.**.!.{} gulp.src('./js/*.js') // * 匹配js文件夹下所 ...
- Gulp插件笔记
初次接触Gulp是出于网页模块化的需要,用过之后发现这个任务管理工具有很多实用的插件,意外地好用,于是打算写下这篇笔记把用到的Gulp插件记录一下.至于想了解Gulp基本用法的同学可以去Gulp官网查 ...
随机推荐
- python中Sting字符串
字符串连接 方法1: 用字符串的join方法 a = ['a','b','c','d'] content = '' content = ''.join(a) print content 方法2: 用字 ...
- HDU_2035:人见人爱A^B
Problem Description 求A^B的最后三位数表示的整数. 说明:A^B的含义是“A的B次方” Input 输入数据包含多个测试实例,每个实例占一行,由两个正整数A和B组成(1< ...
- HDU_1061:Rightmost Digit
Problem Description Given a positive integer N, you should output the most right digit of N^N. Inp ...
- 阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准
4月9日,澳门当地时间下午4:00-5:30,阿里云在ICDE 2019举办了主题为“云时代的数据库”的专场分享研讨会. 本次专场研讨会由阿里巴巴集团副总裁.高级研究员,阿里云智能数据库产品事业部负责 ...
- 阿里云oss上传图片报错,The OSS Access Key Id you provided does not exist in our records.解决方法
vue项目 1.安装OSS的Node SDK npm install ali-oss --save 2.参考官方提示https://help.aliyun.com/document_detail/11 ...
- TreeSet之用外部比较器实现自定义有序(重要)
Student.java package com.sxt.set5; public class Student{ private String name; private int age; priva ...
- 【datagrid】动态加载列 2016-01-03 16:32 2013人阅读 评论(19) 收藏
之前我们的项目在前台显示只需要把数据从数据库读出来进行显示就可以,datagrid的表头字段都是写死的,把数据往表里一扔,就基本没什么事儿了,结果客户前几天要求,其中一个字段不能是死的,应该是有多少项 ...
- 从零学React Native之06flexbox布局
前面我们接触了好多React Native代码, 并没有介绍RN中的组件具体是如何布局的,这一篇文章,重点介绍下flexbox布局. 什么是flexbox布局 React中引入了flexbox概念,f ...
- TensorFlow 池化层
在 TensorFlow 中使用池化层 在下面的练习中,你需要设定池化层的大小,strides,以及相应的 padding.你可以参考 tf.nn.max_pool().Padding 与卷积 pad ...
- UISearchDisplayController “No Results“ cancel修改
Recently I needed to fully customize a UISearchBar, so here are some basic "recipes" on ho ...