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 gulp-ruby-sass@1.0.1
/*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']);
Gulp 简单的开发环境搭建的更多相关文章
- android Jni NDK开发环境搭建及其简单实例的编写
android Jni NDK开发环境搭建及其简单实例的编写 由于工作需要,需要采用开发想要的JNI,由于之前没有接触过安卓的开发,所以更加网上的帖子,学习了下.遇到了些问题,然后总结下学习过程中 ...
- Struts2开发环境搭建,及一个简单登录功能实例
首先是搭建Struts2环境. 第一步 下载Struts2去Struts官网 http://struts.apache.org/ 下载Struts2组件.截至目前,struts2最新版本为2.3.1. ...
- 如何学习web开发环境搭建和脚手架
Web前端的学习路线 第一阶段: HTML+CSS: HTML进阶.CSS进阶.div+css布局.HTML+css整站开发. JavaScript基础: Js基础教程.js内置对象常用方法.常见DO ...
- Qt for Android开发环境搭建及测试过程记录
最近学习了Qt的QML编程技术,感觉相较于以前的QtGUI来说更方便一些,使用QML可以将界面与业务逻辑解耦,便于开发. QML支持跨平台,包括支持Android平台,因此可以使用Qt的QML进行An ...
- node.js之开发环境搭建
一.安装linux系统 (已安装linux可跳此步骤) 虚拟机推荐选择:VirtualBox 或者 Vmware (专业版永久激活码:5A02H-AU243-TZJ49-GTC7K-3C61N) 我这 ...
- TODO:小程序开发环境搭建
TODO:小程序开发环境搭建 1.第一步当然是要先注册小程序了 2.登录到小程序 a)完善小程序信息,如名称,图标,描述 3.绑定开发者 4.获取AppID,并设置服务器信息 5.下载并安装开发者工具 ...
- Eclipse中Python开发环境搭建
Eclipse中Python开发环境搭建 目 录 1.背景介绍 2.Python安装 3.插件PyDev安装 4.测试Demo演示 一.背景介绍 Eclipse是一款基于Java的可扩展开发平台. ...
- visual studio 2015 + Cordova 开发环境搭建
简单的写一些,备忘,太折腾了,特别是通过代理上网的我们国内的开发者 1.当然是安装Visual Studio 2015,别忘了选择Tools For Apache Cordova. 对于通过Proxy ...
- Cordova+ionic 开发hybird App --- 开发环境搭建
Cordova 开发hybird App 开发环境搭建 一.一些基础概念: Ant : 简单说来可以这么理解,如果你用记事本写JAVA程序,然后在cmd里输入javac命令编译它,但是有一天你发现每次 ...
随机推荐
- springxml配置构造函数入参
springxml配置构造函数入参有深入的理解 集合mockito创建对象的方法.功能等同于创建对象的代码. spring配置文件中定义bean的好处 便于集中管理,系统任何地方都可以引用使用.如果不 ...
- repeater 结合checkbox批量删除
项目中用到这个,从网上搜了搜相关内容,代码如下 <script type="text/javascript"> function checkAllThis(obj) { ...
- setTimeout(fn, 0)引发的JavaScipt线程的思考
起因 周五改一个checkbox的display属性被错误地设置为none的bug. 经debug发现, 有两个地方修改了display属性: 1) checkbox的controller; 2) c ...
- Qt在VS2013或Qt Creator 中的控制台输出方式设置
首先值得注意的是:在写程序的时候,项目保存路径不要涉及到中文,否则容易出错! 一.Qt在VS2013中的控制台输出方式: 注意:这里是而不是Qt Application. 然后直接点击finish即可 ...
- 中文man帮助安装
下面我们来安装下中文man帮助 首先在http://pkgs.fedoraproject.org/repo/pkgs/man-pages-zh-CN/manpages-zh-1.5.2.tar.bz2 ...
- PHP自动添加http://头 转换网址为链接
有时候,当我们需要用户输入网址的时候,一般我们会让用户省略掉"http://",当提交完成后用代码自动再加上http://,若有需要,我们 还可将网址转换成链接的形式,类似于众多网 ...
- ARM汇编指令(未完待续)
ARM指令自己在看的时候,看完之后就忘了,根本记不住,而且有些ARM汇编指令在平常的时候可能根本就用不到,所以也没必要把所有的ARM指令都去记忆,所以自己就想着不去一遍一遍的复习ARM指令,而是在平常 ...
- 用异提交时,后台通过校验规则文件,校验不通过时,跳转到INPUT视图时,前台显示错误信息的解决办法
1.第一种: 最近项目使用了struts2的校验(其实我觉得后台校验,特别是struts的校验,完全可以放在其他地方处理,比如交给js或者业务逻辑),而且系统刚好还使用了extjs,此时问题出现了:假 ...
- linux命令中"|"管道流的意思
在linux中.可以利用符号:"|"来实现管道功能. 那么什么是管道功能呢: 管道是Shell的一大特征.他将多个命令前后连接起来形成一个管道流. 管道流中的每一个命令都作为一个单 ...
- 禁用USB存储设备(不重启)
Title:禁用USB存储设备(不重启) -- 2012-09-13 12:08 在win2003实验,USB存储禁止,无需重启! stop usbrw.reg ------------------- ...