i5tingbookjavascript
gulp-bookcss
前面两节学习到gulp的基本知识,也知道gulp能够进行压缩,监控,combo等等,这节进行实战。因为gulp有不少插件,因此咱们没必要重复造轮子,只用用好相关插件就能够html
某些时候咱们会在本地安装Apache或者Nginx当作静态服务器,有了gulp以后就不用了。gulp-connect
插件能够实现web服务器功能前端
安装gulp-connect:java
npm install --save-dev gulp-connect
示例:android
'use strict'; const gulp = require('gulp'); const connect = require('gulp-connect'); gulp.task('server',function(){ connect.server(); }); gulp.task('default',['server']);
执行命令gulp
,而后终端会打印日志以下:git
[22:07:20] Using gulpfile ~/WebstormProjects/es6-doc/gulpfile.js [22:07:20] Starting 'server'... [22:07:20] Finished 'server' after 34 ms [22:07:20] Starting 'default'... [22:07:20] Finished 'default' after 7.53 μs [22:07:20] Server started http://localhost:8080
能够看出已经启动了web服务器。能够经过http://localhost:8080
访问。默认是访问gulpfile.js
所在目录的index.html
es6
省时的浏览器同步测试工具browsersyncgithub
摘自官网web
rowsersync能让浏览器实时、快速响应您的文件更改(html、js、css、sass、less等)并自动刷新页面。更重要的是 Browsersync能够同时在PC、平板、手机等设备下进项调试。您能够想象一下:“假设您的桌子上有pc、ipad、iphone、android等设备,同时打开了您须要调试的页面,当您使用browsersync后,您的任何一次代码保存,以上的设备都会同时显示您的改动”。不管您是前端仍是后端工程师,使用它将提升您30%的工做效率。
安装 gulp-uglify:
npm install --save-dev gulp-uglify
示例:
gulp.watch('js/*.js',['uglify_js']); gulp.task('uglify_js',function(){ gulp.src('js/*.js') .pipe(uglify()) .pipe(gulp.dest('build/js')); }); gulp.task('default',['uglify_js']);
上面这段代码能够实现,当js文档下面的js文件内容变化时,会被从新压缩并输出到目的目录
安装:
npm install --save-dev gulp-less
示例:
const gulp = require('gulp'); const less = require('gulp-less'); // 编译less // 在命令行输入 gulp less 启动此任务 gulp.task('less', function () { // 1. 找到 less 文件 gulp.src('less/**.less') // 2. 编译为css .pipe(less()) // 3. 另存文件 .pipe(gulp.dest('dist/css')) }); // 在命令行使用 gulp auto 启动此任务 gulp.task('auto', function () { // 监听文件修改,当文件被修改则执行 less 任务 gulp.watch('less/**.less', ['less']) }) // 使用 gulp.task('default') 定义默认任务 // 在命令行使用 gulp 启动 less 任务和 auto 任务 gulp.task('default', ['less', 'auto'])
上面代码能够实现less文件变化,编译输出到css文件夹下
另外还能够用gulp来编译sass和压缩图片以及combo文件等等。能够本身去查看