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...
)
时间: 2024-10-12 08:39:11

gulp插件大全的相关文章

gulp插件的使用方法

gulp插件很多,这里介绍几个比较常用的插件... 1.gulp-less:用于把less文件编译成css文件. 因为html文件中不能直接引用less文件(需要导入相关编译js文件配合才行),因此需要想方设法把相应less文件编译成less文件编译成css文件.除了考拉编译外,还可以通过gulp这个自动化构建工具实现less文件的编译. 在用gulp编译前,首先你需要安装node.js.gulp是基于node.js,理所当然需要安装node.js.npm(node package manage

Eclipse插件大全

http://developer.51cto.com/art/201007/214478.htm Eclipse插件大全,码迷,mamicode.com

如何编写一个gulp插件

很久以前,我们在"细说gulp"随笔中,以压缩JavaScript为例,详细地讲解了如何利用gulp来完成前端自动化. 再来短暂回顾下,当时除了借助gulp之外,我们还利用了第三方gulp插件”gulp-uglify”,来达到压缩JavaScript文件的目的. 代码如下: 今儿,我们的重点就是,自己也来实现一个gulp插件. 正文 其实,如果只是单纯地想要编写一个gulp插件不难,可以借助through2或者through-gulp来编写(through-gulp是基于through

Gulp 插件

Gulp 插件 前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本的了解.如果你对 Gulp 还不是很了解,可以通过下面两篇文章快速了解 Gulp . 由于几乎所有的插件都有非常友好的使用文档,所以本文不讨论涉及插件使用的东西,仅是一个汇总.排名不分先后. 本系列文章导航: 一.基于 Gulp 的前端集成解决方案 —— 在windows下安装gul

常用 Gulp 插件汇总 —— 基于 Gulp 的前端集成解决方案(三)

前两篇文章讨论了 Gulp 的安装部署及基本概念,借助于 Gulp 强大的 插件生态 可以完成很多常见的和不常见的任务.本文主要汇总常用的 Gulp 插件及其基本使用,需要读者对 Gulp 有一个基本的了解.如果你对 Gulp 还不是很了解,可以通过下面两篇文章快速了解 Gulp . 由于几乎所有的插件都有非常友好的使用文档,所以本文不讨论涉及插件使用的东西,仅是一个汇总.排名不分先后. 本系列文章导航: 一.基于 Gulp 的前端集成解决方案 —— 在windows下安装gulp 二.基于 G

转 jquery插件--241个jquery插件—jquery插件大全

241个jquery插件—jquery插件大全 jquery插件jqueryautocompleteajaxjavascriptcoldfusion jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team. jQuery是继prototype之后又一个优秀的Javascrīpt框架.其经典的Slogan是“Write Less, Do more”(写更少的代码,做更多的事情).jQuery是轻量级的js库(压缩后只有21k) ,这是其它

gulp 插件之 del

del 模块的简介: 你也许会想要在编译文件之前删除一些旧文件.由于删除文件和文件内容并没有太大关系,所以,我们没必要去使用一个 gulp 插件.最好是选择使用一个原生的 node 模块,因为 del 模块支持多个文件以及模式匹配,因此,我们将使用它来删除文件. 一.del 模块的使用 1.安装 "del"插件命令(在终端进入到项目根目录执行) npm install --save-dev  gulp del 2.在项目根目录下提供 "del" 插件任务配置需要的

gulp插件(gulp-jmbuild),用于WEB前端构建

源码地址:https://github.com/jiamao/gulp-jmbuild https://github.com/jiamao/gulp-jmbuild gulp-jmbuild gulp插件,用于WEB前端构建 安装 进入您做为构建工具用的目录 1.首先安装gulp $ npm install -g gulp $ npm install --save-dev gulp 2.安装其它依赖[q/gulp-jshint]. $ npm install q $ npm install gu

常用Firefox插件大全

Web开发人员常用的火狐插件 1)FireShot:是一个截图工具,来源于截图软件Screenshot Studio的开发商,是一个Firefox扩展或者说是Firefox版的Screenshot Studio(一款很强大的且与众不同的截图软件),用于创建网页截图.重要的是,Fireshot与Screenshot Studio不同,它是免费使用的.如果你仅需要网页截图和简单的编辑,Fireshot就是最好的选择.当然,前提是你使用Firefox浏览器. 2)ColorZilla颜色拾取器:是个方