博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
building with Gulp
阅读量:6372 次
发布时间:2019-06-23

本文共 2821 字,大约阅读时间需要 9 分钟。

本文章基于本周三分享内容进行整理所作。

Gulp 是什么?

  • 构建系统

  • 基于 Node.js 构建

  • 使用 javascript 编写

  • 拥有众多的插件

  • 开源

安装 Gulp

全局安装

npm install -g gulp

安装到项目中

npm install --save-dev gulp

使用 Gulp

创建 Gulpfile.js

var gulp = require('gulp'),       uglify = require('gulp-uglify');        gulp.task('minify', function () {       gulp.src('js/app.js')          .pipe(uglify())          .pipe(gulp.dest('build'))    });

分解为 3 个部分

  1. 定义模块

    var gulp = require('gulp'),    uglify = require('gulp-uglify');
  2. 定义任务

    gulp.task('minify', function () {    });
  3. 定义任务执行具体逻辑

    gulp.src('js/app.js')    .pipe(uglify())    .pipe(gulp.dest('build'))

    上述代码可转为流程图如下

    图片描述

    另一个例子

    gulp.task('js', function () {   return gulp.src('js/*.js')      .pipe(jshint())      .pipe(jshint.reporter('default'))      .pipe(uglify())      .pipe(concat('app.js'))      .pipe(gulp.dest('build'));    });

图片描述

gulp.src()

使用 node-glob 匹配文件路径

js/app.jsjs/*.jsjs/**/*.js!js/app.js    Excludes js/app.js from the match, which is useful if you want to match all files in a directory except for a particular file*.+(js|css)    Matches all files in the root directory ending in .js or .css

包含多个文件

gulp.src(['js/**/*.js', '!js/**/*.min.js'])

gulp.task()

gulp.task('greet', function () {   console.log('Hello world!');});gulp.task('build', ['css', 'js', 'imgs']);gulp.task('css', ['greet'], function () {   // Deal with CSS here});gulp.task('default', function () {   // Your default task});

gulp.watch()

gulp.task('watch', function () {   gulp.watch('templates/*.tmpl.html', ['build']);});gulp.watch('templates/*.tmpl.html', function (event) {   console.log('Event type: ' + event.type); // added, changed, or deleted   console.log('Event path: ' + event.path); // The path of the modified file});var watcher = gulp.watch('templates/*.tmpl.html', ['build']);watcher.on('change', function (event) {   console.log('Event type: ' + event.type); // added, changed, or deleted   console.log('Event path: ' + event.path); // The path of the modified file});

除了 change 还支持 error、end、ready、nomatch等事件

动态更新

LiveReload

图片描述

BrowserSync

图片描述

为何使用 Gulp

实现相同的功能

Grunt

grunt.initConfig({   less: {      development: {         files: {            "build/tmp/app.css": "assets/app.less"         }      }   },   autoprefixer: {      options: {         browsers: ['last 2 version', 'ie 8', 'ie 9']      },      multiple_files: {         expand: true,         flatten: true,         src: 'build/tmp/app.css',         dest: 'build/'      }   }});grunt.loadNpmTasks('grunt-contrib-less');grunt.loadNpmTasks('grunt-autoprefixer');grunt.registerTask('css', ['less', 'autoprefixer']);

Gulp

var gulp = require('gulp'),   less = require('gulp-less'),   autoprefix = require('gulp-autoprefixer');gulp.task('css', function () {   gulp.src('assets/app.less')      .pipe(less())      .pipe(autoprefix('last 2 version', 'ie 8', 'ie 9'))      .pipe(gulp.dest('build'));});

参考链接

转载地址:http://qayqa.baihongyu.com/

你可能感兴趣的文章
vue-element-admin 4.0.1 发布,后台集成方案
查看>>
一位耶鲁教授,在和大公司比谁最快造出第一台量子计算机
查看>>
TMS云应邀参加第六届西部国际物流博览会
查看>>
(四)开源IT资产管理系统-->部署GLPI与OCS数据同步
查看>>
Hyper-V Server 第二代虚拟机
查看>>
Oracle Sys用户用默认密码change_on_install 无法登录的问题(错误代码:ORA-28009)
查看>>
DIFramework.NET ━ Web中打印的各种方案参考-欢迎补充
查看>>
HTML5 地理位置定位(HTML5 Geolocation)原理及应用
查看>>
RH436-6 Advanced RAID
查看>>
MOM2005安装配置指南
查看>>
HAProxy:基础详解
查看>>
MTCS标准
查看>>
英语每日听写练习 Day1
查看>>
如何让OWA可以查看SMTP/POP3/IMAP访问的设置
查看>>
dns详解
查看>>
Server 2003域控升级Server 2008R2或者Server 2012R2(上)
查看>>
初尝Mcafee之ePO端口修改【03】
查看>>
WDS--部署服务器
查看>>
MyEclipse将项目打成jar包
查看>>
springMVC3学习--ModelAndView对象(转)
查看>>