Gulp 简单的开发环境搭建

//获取gulp
//require()是 node (CommonJS)中获取模块的语法

var gulp=require(‘gulp‘);

//获取gulp-concat模块(用于合并文件):npm install --save-dev gulp-concat
var concat=require(‘gulp-concat‘);

//获取gulp-jshint(语法检查):npm install jshint
var jshint=require(‘gulp-jshint‘);

//获取gulp-uglify组件(用于压缩JS):npm install gulp-uglify
var uglify=require(‘gulp-uglify‘);

//获取minify-css模块(用于压缩CSS):npm install gulp-minify-css
var minifyCSS=require(‘gulp-minify-css‘);

//获取gulp-imagemin模块:npm instal gulp-imagemin
var imagemin=require(‘gulp-imagemin‘);

//获取gulp-less 模块:npm install gulp-less
var less=require(‘gulp-less‘);

//获取gulp-ruby-sass模块:npm install [email protected]
/*var sass=require(‘gulp-ruby-sass‘);*/

//获取gulp-sass模块:不依赖ruby环境,依赖包:node-sass
var sass=require(‘gulp-sass‘);

//获取gulp-minify-html模块:npm i gulp-minify-html
var minifyHtml=require(‘gulp-minify-html‘);

//获取gulp-autoprefixer模块:npm i gulp-autoprefixer
var autoprefixer = require(‘gulp-autoprefixer‘);

//获取gulp-watch-path模块:npm install gulp-watch-path
//var watchPath=require(‘gulp-watch-path‘);

//获取gulp-rename(文件重命名):npm install gulp-rename
var rename=require(‘gulp-rename‘);

//创建任务

// 语法检查
gulp.task(‘jshint‘, function () {
    return gulp.src(‘js/*.js‘)
        .pipe(jshint())
        .pipe(jshint.reporter(‘default‘));
});

//压缩js文件
//在命令行中使用gulp script启动此任务

gulp.task(‘script‘,function(){
	//1.找到文件
	gulp.src(‘js/*.js‘)
	//2.压缩文件
	.pipe(uglify())
    //3.压缩后另存文件
    .pipe(gulp.dest(‘dist/js‘))
});

//创建压缩css任务

gulp.task(‘css‘,function(){
	//1.找到文件
	gulp.src(‘css/*.css‘)
	//2.压缩文件
	.pipe(minifyCSS())
	//3.另存为压缩文件
	.pipe(gulp.dest(‘dist/css‘))
    //4.压缩后的文件重命名为:xx.min.css
	.pipe(rename({suffix:‘.min‘}))
	.pipe(autoprefixer())
	.pipe(minifyCSS())
	.pipe(gulp.dest(‘dist/css‘))
});

//创建压缩图片任务
//在命令行输入 gulp images 启动此任务

gulp.task(‘images‘,function(){
	//1.找到图片
	gulp.src(‘images/*.*‘)
	//2.压缩图片
	.pipe(imagemin({
		progressive:true
	}))
	//3.另存压缩后图片
	.pipe(gulp.dest(‘dist/images‘))
});

//压缩HTML文件
//在命令行输入 gulp minifyHTML 启动此任务

gulp.task(‘html‘, function () {
    gulp.src(‘html/*.html‘) // 要压缩的html文件
    .pipe(minifyHtml()) //压缩
    .pipe(gulp.dest(‘dist/html‘));
});

//编译less
//在命令行输入 gulp less 启动此任务

gulp.task(‘less‘,function(){
	//1.找到 less 文件
	gulp.src(‘less/**.less‘)
	//2.编译为css
	.pipe(less())
	//3.另存文件
	.pipe(gulp.dest(‘dist/css‘))
	//4.重命名,并压缩
	.pipe(rename({suffix:‘.min‘}))
	.pipe(minifyCSS())
	.pipe(gulp.dest(‘dist/min/css‘))
});

//编译sass
//在命令行输入 gulp sass启动此任务

gulp.task(‘sass‘, function() {
     gulp.src(‘sass/*.scss‘)
     .pipe(sass())
     .pipe(gulp.dest(‘dist/css‘))
     .pipe(rename({suffix:‘.min‘}))
	 .pipe(minifyCSS())
	 .pipe(gulp.dest(‘dist/min/css‘))
});

//文件合并
gulp.task(‘concat‘, function () {
    gulp.src(‘js/*.js‘)  //要合并的文件
    .pipe(concat(‘all.js‘))  // 合并匹配到的js文件并命名为 "all.js"
    .pipe(gulp.dest(‘dist/js‘))
    .pipe(rename({suffix:‘.min‘}))
    .pipe(uglify())
    .pipe(gulp.dest(‘dist/js‘))
});

//autoprefixer,自动补全css3前缀

gulp.task(‘autoprefixer‘,function(){
	return gulp.src(‘css/*.css‘)
	.pipe(autoprefixer({
		browsers:[‘last 2 version‘],
		cascade:false
	}))
	.pipe(gulp.dest(‘dist/css‘))
})

//自动监听:当文件修改时候,自动执行script任务

//在命令行使用gulp watch 启动以下任务
gulp.task(‘watch‘,function(){
	gulp.watch(‘js/*.js‘,[‘jshint‘,‘script‘,‘concat‘]);
	gulp.watch(‘sass/*.scss‘,[‘sass‘,‘css‘,‘autoprefixer‘]);
	gulp.watch(‘css/*.css‘,[‘css‘,‘autoprefixer‘]);
	gulp.watch(‘html/*.html‘,[‘html‘]);
});

//使用gulp.task(‘default‘) 定义默认任务,即:输入 gulp script 指令时默认启动该任务
//在命令行使用 gulp 启动 script 任务 和 auto 任务
//停止自动任务:Ctrl + C
//多任务执行 gulp +回车

gulp.task(‘default‘,[‘jshint‘,‘autoprefixer‘,‘script‘,‘css‘,‘html‘,‘images‘,‘sass‘,‘less‘,‘watch‘]);
时间: 2024-10-07 05:45:55

Gulp 简单的开发环境搭建的相关文章

[PhoneGap]开发环境搭建与简单应用

目前,随着Google的Android手机和苹果的iphone手机的逐渐普及,越来越多开发者加入到移动应用开发的大军当中.其中,Android应用是基于Java语言基础上进行开发的,而苹果公司的iphone则是基于C语言开发的.如果开发者编写的应用需要同时在不同的移动设备上运行的话,则必须要掌握多种开发语言.而为了进一步简化移动应用的编程,Nitobi公司推出了一套开源的移动应用解决方案PhoneGap(http://www.phonegap.com). PhoneGap是一款开源的手机应用开发

ExtJS5 (一) 超简单整合到eclipse中,搭建简单的开发环境

个人一直欣赏大神们的唯美前端页面,而现在个人从事的是MIS系统等相关的开发,故决定学习ExtJS,目前最新版本是5.0,就从5.0开始吧. 作为java开发人员,自然而然的想在eclipse中搞个extjs的简单开发环境,以后再慢慢丰富,开始吧~ 第一步:从官网下载extjs,目前是5.0版本 第二步:用eclipse创建一个动态web工程 第三步:在工程的WebContent目录下创建一个文件夹,叫作ExtJS5. 第四步:解压从官网下载的extjs,解压之后,目录结构如下: 看一下根目录下的

React 开发环境搭建 以及emmet的简单语法

1,React的开发背景 2,React的特点 3,React的开发环境搭建 3.1 下载FaceBook官方的基础代码 下载地址:facebook.github.io/react/index.html 3.2 文本编辑器Sublime Text3安装 3.2.1 下载sublime Text3下载 地址:http://www.sublimetext.com/3 首先安装packagecontrol 详见一下地址:https://packagecontrol.io/installation 打开

Struts2开发环境搭建,及一个简单登录功能实例

首先是搭建Struts2环境. 第一步 下载Struts2去Struts官网 http://struts.apache.org/ 下载Struts2组件.截至目前,struts2最新版本为2.3.1.3,下载struts-2.3.16.3-all.zip,解压,放着. 第二步 新建Web Project并导入jar包在MyEclispe中新建Web Project,然后找到解压的Struts2包,在里面apps文件夹下找到struts2-blank.war,解压这个WAR文件,将里面WEB-IN

Storm使用入门之本地开发环境搭建

本篇博文详细告诉你如何安装Storm的本地开发环境,总体分为两步,具体如下: 1.从官网上下载Storm的发布包,下载完成后将其解压,并将解压后的bin目录添加到环境变量(PATH)中,以方便后续执行Storm的相关命令 2.修改Storm的配置文件(storm.yaml),主要是按照实际情况更新配置文件中的集群信息,然后将修改后的配置文件添加到目录(~/.storm/)中,目的是为了后续能够远程启动和停止集群上的计算任务(即topology) 接下来,咱们来详细地介绍每一个操作步骤. 首先,何

Hive项目开发环境搭建(Eclipse\MyEclipse + Maven)

写在前面的话 可详细参考,一定得去看 HBase 开发环境搭建(Eclipse\MyEclipse + Maven) Zookeeper项目开发环境搭建(Eclipse\MyEclipse + Maven) 我这里,相信,能看此博客的朋友,想必是有一定基础的了.我前期写了大量的基础性博文.可以去补下基础. 步骤一:File  ->  New  -> Project   ->  Maven Project 步骤二:自行设置,待会创建的myHBase工程,放在哪个目录下. 步骤三: 步骤四:

Cordova+ionic 开发hybird App --- 开发环境搭建

Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次手动输入太麻烦而且都是重复劳动,于是你下决心改变这种状况,然后学会了把javac命令写到一个bat文件中,以后编译只需要单击运行即可:然后随着你敲的代码越来越多,而且有了JAVA project概念,于是你手动新建了很多文件夹比如src.bin.lib,你有写了一个bat文件来减少你的重复劳动:再后

转:Qt 嵌入式开发环境搭建

地址: http://www.cnblogs.com/lishixian/articles/3013897.html         作者:lsx_007 这里主要是记录了自己在搭建嵌入式开发环境时阅读的一些有价值的参考文档,文档主要来自于网络,由于是从文库中下载,所以也不知道 文档的出在哪?因为个人觉得总结的比较好,我暂且拿过来记录下,当然在此基础上也会加上我自己的理解!这篇文章主要是以问答的形式来组织. QT嵌入式开发环境是本文所要介绍的内容,我们先看看Qt的各个版本简介: 1.什么是QT

PCI/PCIe接口卡Windows驱动程序(1)-WDF概述及开发环境搭建

本科毕业设计是这方面的工作,所以想开几篇博客来介绍使用WDF开发PCI/PCIe接口卡的驱动程序方法. 这个系列的博客将首先用一个篇幅为不懂Windows 下PCI/PCIe驱动开发的介绍WDF和开发环境搭建,接下来几篇将直接讲述程序编写, 看完这几篇后,希望能够帮助读者了解如何通过500行左右的代码实现一个标准的PCIe接口卡驱动程序. 毕设题目的PCIe板卡是BAR0下映射两个5K的内存,偏移地址为0x20000和0x22000,源代码在: https://github.com/luluji