前端自动化构建工具-gulp
gulp 和grunt这两个是我知道的自动构建工具,但是说实话都没在项目中用过,不太清楚自动化构建是什么意思,
1、grunt和gulp有什么相同点和不同点?
(1)、易于使用:采用代码优于配置策略,gulp让简单的事情继续简单,复杂的任务变得可管理;
(2)、高效:通过利用Node.js强大的流,不需要网磁盘写中间文件,可以更快地完成构建;
(3)、高质量:gulp严格的插件知道发昂真,确保插件简单并且按照你期望的方式工作;
(4)、易于学习:通过把API降到最少,你能在很短的时间内学会gulp,构建工作就像你设想的一样:是一系列流管道;
(5)、易用gulp相比grunt更简洁,而且遵循代码优于配置的策略,维护gulp更像是写代码。高效gulp相比grunt更有设计感,核心设计基于unix流的概念,通过管道连接,不需要写中间件,高质量gulp的每个插件只完成一个功能,这也似乎unix的设计原则之一,各个功能通过流进行整合并完成复杂的任务。例如:grunt的imagemin插件不仅压缩图片,同事还包括缓存功能。他表示,在gulp中,缓存是另一个插件,可以被别的插件使用,这样就错金了插件的可重用性。易学gulp的核心API只有5个,掌握了5个API就学会了gulp,之后就可以通过管道流组合自己想要的任务。
2、如何使用gulp配置自己的项目
(1)、想要在项目中使用gulp,就要全局安装gulp,执行命令如下
npm install gulp -g
这样就算是在计算机上安装了全局gulp,也就意味着可以使用Gulp中的模块了(必须全局安装,局部安装,cmp中gulp命令不能执行)。
(2)、建立文件夹
新建文件夹managres,managers下面新建两个文件夹dist和src,一个表示源头,一个表示输出,然后通关过git bash工作在managers文件夹下执行命令
nom init ---用于生成package.json文件
回车之后,gulpManagers下目录结构如下图:
(3)、开始安装需要用到的插件,这里我做几个中要的说明一下,其他的插件可以自己去摸索
npm install --save-dev gulp(save-dev指的是把gulp配置到本项目的package.json文件下,因为你要使用人家的插件,肯定需要他来指挥)
npm install --save-dev gulp-uglify(这个插件是用来压缩js的)
npm install --save-dev gulp-ruby-sass(这个是用来编译sass的)
npm install --save-dev gulp-notify(这个是提醒插件)
3、讲解一下gulp总要的4个API
gulp.src();表示文件的来源,或者说是读取文件
gulp.dest();表示文件的输出,也就是输出文件
gulp.task();表示要执行的任务
gulp.watch();表示要监听的任务
4、接着讲压缩js
在gulpManagers文件夹下新建gulifile.js,在src文件夹下新建文件夹js,并在js文件夹下新建文件index.js
(1)、如何去自己写人物文件(gulpfile.js)
//引入需要的插件
var gulp =require('gulp');
var uglify=require('gulp-uglify');
var notify=require('gulp-notify'); //布置任务
gulp.task('uglify',function(){
gulp.src('src/js/**/*.js') //读取项目中的js文件
.pipe(uglify()) //利用插件进行压缩
.pipe(gulp.dest('dist/js')) //压缩过后偶输出文件到指定目录
.pipe(notify({message:'uglify is ok'})) //提醒你:压缩任务完成了
})
(2)、现在dist文件夹下面新生成了一个js文件夹,里面有一个index.js文件,这个就是压缩后的文件了。
5、监听js的改变
或许有人会问,如果的js文件变动了,能不能监听到呢?
在gulp你可以通过watch来监听js的改变
(1)、将gulpfile.js文件里面原本的东西注释掉,将dist文件下所有东西删除掉,新写gulpfile.js文件
//引入需要的插件
var gulp=require('gulp');
var uglify=require('gulp-uglify');
var notify=require('gulp-notify'); //布置任务
gulp.task('uglify',function(){
gulp.src('src/js/**/*.js') //读取项目中的js文件
.pipe(uglify()) //利用插件进行压缩
.pipe(gulp.dest('dist/js')) //压缩过后输出到文件指定目录
.pipe(notify({message:"uglify is ok"})) //提醒任务完成
}) gulp.task('watch',function(){
gulp.watch("src/js/**/*.js",["uglify"]) //监听文件夹下js变化,执行压缩任务
})
(2)、在cmd中执行watch:gulp watch 回车,现在去src/js/index.js下面改动内容,点击保存的时候,会出现提醒消息:uglify is ok。
并且在dist/js下面多了一个新压缩的index.js文件。(多次改动src/js下index.js文件,点击保存,执行压缩,dist/js/index.js一直都似乎一份最新的文件,并不会每次保存一份)。
前端自动化构建工具-gulp的更多相关文章
- 前端自动化构建工具gulp的使用总结
前端自动化构建工具gulp的使用总结 博主最近偶的空闲,在此对gulp的使用做一个总结,让小伙伴知道如何合理的使用gulp以及gulp的使用技巧. 谈到gulp,有人可能就会想到另外一个构建工具gru ...
- 前端自动化构建工具——gulp
gulp是基于流的前端自动化构建工具. 一.环境配置 gulp是基于nodejs的,所以没有 nodejs 环境的要先去安装好 然后给系统配上gulp环境 npm install -g gulp 再到 ...
- 前端自动化构建工具 Gulp 使用
一个月没写博客了,今天有时间,就写个gulp的入门使用吧.. 简介:gulp是一个前端自动化构建工具,可以实现代码的检查.压缩.合并……等等,gulp是基于Node.js的自动任务运行器 一.安装No ...
- 前端自动化构建工具--Gulp&&Webpack
前端构建工具的作用可以认为是对源项目文件或资源进行文件级处理,将文件或资源处理成需要的最佳输出结构和形式. 在处理过程中,我们可以对文件进行模块化引入.依赖分析.资源合并.压缩优化.文件嵌入.路径替换 ...
- 前端自动化构建工具 gulp 学习笔记 一、
一.我对gulp的初期理解 是一种前端辅助开发工具 可以帮你把js,css,img等文件 合并.压缩,图片好像是合并为精灵图,合并为精灵图之后,还会生成一个css样式表. 官方解说是:基于流的自动化构 ...
- 前端自动化构建工具——gulp环境搭建教程
gulp是前端工程化的工具,它可以对html,css,js等代码和图片进行压缩,也可以对sass和less等预处理语言进行编译,代码部署.gulp学起来简单,用起来方便,大大提高我们工作效率. 这里可 ...
- 前端自动化构建工具gulp记录
一.安装 1)安装nodejs 通过nodejs的npm安装gulp,插件也可以通过npm安装.windows系统是个.msi工具,只要一直下一步即可,软件会自动在写入环境变量中,这样就能在cmd命令 ...
- 前端自动化构建工具gulp使用
1. 全局安装 gulp: $ npm install --global gulp 2. 作为项目的开发依赖(devDependencies)安装: $ npm install --save-dev ...
- 前端自动化构建工具gulp
1.gulp的安装 首先确保你已经正确安装了nodejs环境.然后以全局方式安装gulp: npm install -g gulp 全局安装gulp后,还需要在每个要使用gulp的项目中都单独安装一次 ...
随机推荐
- 学习spring1--跟我一起学Spring 3(2)–开发环境配置
http://www.importnew.com/13185.html#spring 首页 所有文章 资讯 Web 架构 基础技术 书籍 教程 我要投稿 更多频道 » - 导航条 - 首页 所 ...
- 第一百九十六节,jQuery EasyUI,Tooltip(提示框)组件
jQuery EasyUI,Tooltip(提示框)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Tooltip(提示框)组件的使用方法, ...
- java blob
package net.qysoft; import java.io.File;import java.io.FileOutputStream;import java.sql.Blob;import ...
- Zookeeper权限管理与Quota管理
Zookeeper的ACL机制和Quota机制网上资料较少,这里做一个总结,以供大家参考. 1 Zookeeper ACL ZooKeeper的权限管理亦即ACL控制功能通过Server.Client ...
- PHPthinking邀请您一起赚Money
原文地址:http://bbs.phpthinking.com/thread-790-1-1.html 为了让大家工作或者学习之余.可以赚些money,PHPthinking为大家推荐一个赚钱的站点! ...
- maven打包加速(转) (开启多线程,之前发现只占用一核CPU100%,其他CPU闲置的情况)
采用maven打包时,发现速度超慢,打包一次5-10分钟或者更长时间过去了,严重浪费了一天的时间.因此整理了一下maven打包加速的问题.1.在maven打包中去掉, maven clean, mav ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.7——使用Android Studio签署发布apk
问题: 想要使用Android studio生成签名配置,给他们分配build类型. 解决方案: Build菜单提供了生成签名配置,Project Structure窗口有tab用于分配不同的type ...
- Android开发:TableFixHeaders源码分析
最近需要在android上的展示表格数据,在github上找到了TableFixHeaders(https://github.com/InQBarna/TableFixHeaders). 项目文件最主 ...
- git更新代码出现错误
git pull代码时,出现如下的错误: SSL certificate problem: unable to get local issuer certificate 主要的原因是:没有ssl证书 ...
- hdu 5471(状压DP or 容斥)
想了最复杂的思路,用了最纠结的方法,花了最长的时间,蒙了一种规律然后莫名其妙的过了. MD 我也太淼了. 后面想了下用状压好像还是挺好写的,而且复杂度也不高.推出的这个容斥的规律也没完全想透我就CAO ...