gulp插件大全
原文:http://www.mamicode.com/info-detail-517085.html
No.1、run-sequence 作用:让gulp任务,可以相互独立,解除任务间的依赖,增强task复用
Links: https://www.npmjs.com/package/run-sequence 推荐指数:★★★★★
No.2、browser-sync 作用:静态文件服务器,同时也支持浏览器自动刷新
Links: http://www.browsersync.io/ 推荐指数:★★★★★
No.3、del 作用:删除文件/文件夹
Links:https://www.npmjs.com/package/del 推荐指数:★★★★★
No.4、gulp-coffee 作用:编译coffee代码为Js代码,使用coffeescript必备
Links: https://github.com/wearefractal/gulp-coffee 推荐指数:★★★★
No.5、coffee-script 作用:gulpfile默认采用js后缀,如果要使用gulpfile.coffee来编写,那么需要此模块
Links: https://www.npmjs.com/package/coffee-script 推荐指数:★★★
No.6、gulp-nodemon 作用:自动启动/重启你的node程序,开发node服务端程序必备
Links: https://www.npmjs.com/package/gulp-nodemon 推荐指数:★★★★★
No.7、yargs 作用:用于获取启动参数,针对不同参数,切换任务执行过程时需要
Links: https://www.npmjs.com/package/yargs 推荐指数:★★★
No.8、gulp-util 作用:gulp常用的工具库
Links: https://www.npmjs.com/package/gulp-util 推荐指数:★★★★★
No.9、gulp-uglify 作用:通过UglifyJS来压缩JS文件
Links: https://www.npmjs.com/package/gulp-uglify 推荐指数:★★★★
No.9、gulp-concat 作用:合并JS
Links: https://www.npmjs.com/package/gulp-concat 推荐指数:★★★★
No.10、gulp-sourcemaps 作用:处理JS时,生成SourceMap
Links: https://www.npmjs.com/package/gulp-sourcemaps 推荐指数:★★★★
No.11、gulp-less 作用:将less预处理为css
Links:https://www.npmjs.com/package/gulp-less 推荐指数:★★★★
No.12、gulp-sass 作用:将sass预处理为css
Links:https://www.npmjs.com/package/gulp-sass 推荐指数:★★★★
No.13、gulp-autoprefixer 作用:使用Autoprefixer来补全浏览器兼容的css。
Links:https://www.npmjs.com/package/gulp-autoprefixer 推荐指数:★★★★
No.14、gulp-minify-css 作用:压缩css。
Links:https://www.npmjs.com/package/gulp-minify-css 推荐指数:★★★★
No.15、connect-history-api-fallback 作用:开发angular应用必须,用于支持HTML5 history API.
Links:https://www.npmjs.com/package/connect-history-api-fallback 推荐指数:★★★
一般的gulpfile文件(采用coffee编写)
首先是,node应用程序:
gulp = require(‘gulp‘) runSequence = require(‘run-sequence‘) coffee = require(‘gulp-coffee‘) gutil = require(‘gulp-util‘) del = require(‘del‘) nodemon = require(‘gulp-nodemon‘) argv = require(‘yargs‘).argv rename = require(‘gulp-rename‘) browserSync = require(‘browser-sync‘) reload = browserSync.reload # 处理参数 isDebug = not (argv.r || false) # --入口任务----------------------------------------------------------------- gulp.task(‘default‘, (callback)-> runSequence( [‘clean‘] [‘coffee-server‘, ‘copy-server‘, ‘copy-client‘, ‘coffee-client‘, ‘copy-views‘] ‘serve‘ [‘browserSync‘, ‘watch‘] callback ) ) # --构建相关任务--------------------------------------- gulp.task(‘clean‘, (callback)-> del([‘./dist/‘], callback) ) gulp.task(‘coffee-server‘, -> gulp.src([ ‘./src/**/*.coffee‘ ‘!./src/public/**/*.coffee‘ ‘!./src/views/**‘ ]) .pipe(coffee({bare: true}).on(‘error‘, gutil.log)) .pipe(gulp.dest(‘./dist/‘)) ) gulp.task(‘copy-server‘, -> gulp.src([ ‘./src/config*/*.json‘ ‘./src/database*/*.*‘ ]) .pipe(gulp.dest(‘./dist/‘)) ) gulp.task(‘copy-client‘, -> gulp.src([ ‘./src/public*/**/*‘ ‘!./src/public*/**/*.coffee‘ ]) .pipe(gulp.dest(‘./dist/‘)) ) gulp.task(‘coffee-client‘, -> gulp.src([ ‘./src/public*/**/*.coffee‘ ]) .pipe(coffee({bare: true}).on(‘error‘, gutil.log)) .pipe(gulp.dest(‘./dist/‘)) ) gulp.task(‘copy-views‘, -> gulp.src(‘./src/views/**/*.html‘) .pipe(rename({extname: ‘.vash‘})) .pipe(gulp.dest(‘./dist/views‘)) ) # --启动程序,打开浏览器任务---------------------------------------------------- nodemon_instance = undefined gulp.task(‘serve‘, (callback)-> called = false if not nodemon_instance nodemon_instance = nodemon({ script: ‘./dist/index.js‘ ext: ‘none‘ }) .on(‘restart‘, -> console.log(‘restart server......................‘) ) .on(‘start‘, -> if not called called = true callback() ) else nodemon_instance.emit("restart") callback() nodemon_instance ) gulp.task(‘browserSync‘, -> browserSync({ proxy: ‘localhost:3000‘ port: 8888 #files: [‘./src/public/**/*‘] open: true notify: true reloadDelay: 500 # 延迟刷新 }) ) # --监视任务------------------------------------------------ gulp.task(‘watch‘, -> gulp.watch([ ‘./src/**/*.*‘ ‘!./src/**/*.coffee‘ ], [‘reload-client‘]) gulp.watch(‘./src/**/*.coffee‘, [‘reload-server‘]) ) gulp.task(‘reload-client‘, (callback) -> runSequence( [‘copy-client‘, ‘coffee-client‘, ‘copy-views‘] ‘bs-reload‘ callback ) ) gulp.task(‘reload-server‘, (callback) -> runSequence( [‘copy-server‘, ‘coffee-server‘] ‘serve‘ ‘bs-reload‘ callback ) ) gulp.task(‘bs-reload‘, -> browserSync.reload() )
接下来是前端网站:
gulp = require(‘gulp‘) gutil = require(‘gulp-util‘) coffee = require(‘gulp-coffee‘) del = require(‘del‘) runSequence = require(‘run-sequence‘) browserSync = require(‘browser-sync‘) historyApiFallback = require(‘connect-history-api-fallback‘) # 入口点 gulp.task(‘default‘, -> runSequence( [‘clean‘] [‘copy‘] [‘serve‘] ) ) gulp.task(‘copy‘, -> gulp.src([ ‘./src/**/*.*‘ ‘!./src/**/*.coffee‘ ‘!./src/**/*.less‘ ]) .pipe(gulp.dest(‘./dist‘)) ) gulp.task(‘clean‘, (callback)-> del([‘./dist/‘], callback) ) gulp.task(‘serve‘, -> browserSync({ server: { baseDir: "./dist" middleware: [historyApiFallback] } port: 2222 }) ) gulp.task(‘watch‘, -> # do something... )
gulp插件大全的更多相关文章
- Gulp资料大全:入门、插件、脚手架、包清单
awesome-gulp中文版 一份gulp的资源,插件和使用实例清单, 致力于打造更好的前端工程构建流程. 被老外的awesome 清单刺激到,觉得有必要翻译一份,为国产的程序员们做点事情,本清单将 ...
- 常用 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 ...
- 【转】Eclipse插件大全介绍及下载地址
转载地址:http://developer.51cto.com/art/200906/127169.htm 尚未一一验证. eclipse插件大全介绍,以及下载地址 Eclipse及其插件下载网址大全 ...
- Inno Setup 插件大全
Inno Setup 插件大全 这是我收集到的目前网上最全的插件之一,里面的每个插件,都有详细的脚本示例来讲解该插件的具体用法.另外,下载了我公开的脚本的朋友,也有可能会被提示缺少文件,如果缺 ...
- 将less编译成css的gulp插件
简介:gulp是前端开发过程中对代码进行构建的工具,是自动化项目的构建利器:她不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成:使用她,我们不仅可以很愉快的编写代码, ...
随机推荐
- 多模块分布式系统的简单服务访问 - OSGI原形(.NET)
多模块分布式系统的简单服务访问 - OSGI原形(.NET) 先描述一下本篇描述的适用场景(3台server, 各个模块分布在各个Server上,分布式模块互相依赖.交互的场景): 多个OSIG引擎交 ...
- WPF 自定义 MessageBox (相对完善版)
WPF 自定义 MessageBox (相对完善版) 基于WPF的自定义 MessageBox. 众所周知WPF界面美观.大多数WPF元素都可以简单的修改其样式,从而达到程序的风格统一.可是当 ...
- 简单实现TCP下的大文件高效传输
简单实现TCP下的大文件高效传输 在TCP下进行大文件传输不象小文件那样直接打包个BUFFER发送出去,因为文件比较大所以不可能把文件读到一个BUFFER发送出去.主要有些文件的大小可能是1G,2G或 ...
- Eclipse代码自动提示设置
以前百度过如何设置Eclipse代码自动提示,但是本人记性不好,所以把这个方法写成一篇日志,这样以后就不用百度了,直接看自己的博客就是了,而且还增加了自己博客的点击量.以下是从各个地方看到总结的方法: ...
- 初窥Linux 之 数据流重定向
一.什么是数据流重定向 在说数据流重定向之前,先来说说数据流的概念吧.数据流分为三种:标准输入(stdin),标准输出(stdout)和标准错误输出(stderr). 简单来说,标准输出指的是命令执行 ...
- CCNA网络工程师学习进程(7)路由器的路由配置
前面一节已经介绍了路由器的端口配置,接着我们介绍路由器的路由配置:静态路由.默认路由和浮动路由的配置:动态路由协议的配置,包括RIP.IGRP.EIGRP和OSPF. (1)路由器的基 ...
- 《linux内核完全剖析》笔记03-进程创建
根据一下问题来看笔记 进程占多大的线形地址空间 进程实际分配多少物理内存 创建进程的开销在哪里 一. 从fork系统调用开始 kernel/sys_call.s第222行 _sys_fork: cal ...
- 将前台input中的数据异步传到后台并存入数据库
将前台input中的数据异步传到后台并存入数据库 先看图: 利用ajax异步交互数据,并不是以json数组的形式将数据传到后台,而是利用字符数组的形式将其传到后台.动态新增每一行数据,将每一列对应的数 ...
- UIImage学习笔记
UIImage是什么 用来管理APP里的图片资源,可以用来表示设备支持的图片资源,不仅仅是jpg和png. UIImage是immutable的,因此也是线程安全的. iOS支持的所有的图片格式 链接 ...
- Netty 5.0源码分析之综述
1. 前言 本系列主要是用于梳理Netty的架构流程,深入设计细节,重点关注Netty是如何实现它所声称的特性. (ps:本人水平有限,如有错误,请不吝指教 : )) 2. 什么是Netty Nett ...