es6是什么?借着这个话题,我想说:身为web前端的工作者连es6没听说,转行吧。

demo的代码如下:

源码下载 或者 gitclone地址: git@git.oschina.net:sisheb/gulpdemo.git

1.gulp用到开发plugins如下:

"devDependencies": {
"babel-preset-es2015": "^6.24.1", //es2015转码规则
"gulp": "^3.9.1", //babel插件
"gulp-babel": "^6.1.2",
"gulp-clean": "^0.3.2",
"gulp-jshint": "^2.0.4", //js检错
"gulp-livereload": "^3.8.1",
"gulp-load-plugins": "^1.5.0",
"gulp-plumber": "^1.1.0", //gulp的处理错误
"gulp-webserver": "^0.9.1"
}

  说明:gulp-babel和babel-preset-es2015一起使用,jshint检错与es6语法冲同,需要建里一个配置文件 .jshint:

{
"asi": true,
"esversion": 2015
}

2.开发文件目录

3. gulpfile.js 配置

var gulp = require('gulp'),
$ = require('gulp-load-plugins')(); var app = {
srcPath: 'src/',
devPath: 'build/'
}; gulp.task('js',function(){
return gulp.src(app.srcPath + 'script/**/*.js',{base:app.srcPath})
.pipe($.plumber())
.pipe($.babel({
    presets: ['es2015']
     }))
.pipe(gulp.dest(app.devPath));
});
gulp.task('html',function(){
return gulp.src(app.srcPath + '**/*.html',{base:app.srcPath})
.pipe(gulp.dest(app.devPath));
}); gulp.task('clean',function(){
return gulp.src(app.devPath)
.pipe($.clean());
}); //浏览器同步
gulp.task('webserve',function(){
return gulp.src(app.devPath)
.pipe($.webserver({
livereload: true, //开启gulp-livereload
open: true,
port: 2333 //浏览器端口
}));
}); // 监听
gulp.task('watch',function(){
gulp.watch(app.srcPath + 'script/**/*.js', ['js']);
gulp.watch(app.srcPath + '**/*.html', ['html']);
});
//定义gulp默认任务
gulp.task('default',['webserve','watch']);

  

问题一:当我执行gulp,发现并未一步执行浏览器同步,这是怎么回事?

先查看命令执行结果,发现并没有'js'和'html':

所以我定义一个build的task:

发现没有成功,然后在查看:

发现'webserve'先执行了完成,而'js'和'html'后执行。如果在执行gulp一次,发现居然能够在浏览器同步,这是因为第一次gulp执行留下的build文件,需要执行清理。

在npm社区查找gulp-webserver的api,并没有看到在回调中使用gulp-webserver,而是推荐使用gulp-connact,我刚才使用gulp-connact,看到网上有人使用gulp-webserve,于是便使用 。

我将defualt的task该进,如下便可一步到位:

简单利用gulp-babel搭建es6转es5环境的更多相关文章

  1. gulp+Babel 搭建ES6环境

    Gulp是什么? Gulp是一个工作流的构建系统,开发者可以使用它在网站开发过程中自动执行常见任务.Gulp是基于Node.js构建的,因此Gulp源文件和你用来定义任务的Gulp文件都被写进了Jav ...

  2. ES6 初体验 —— gulp+Babel 搭建ES6环境

    ES6已经火了好久了,我却一直没有在项目中尝试过使用ES6写代码,只是写过几个Demo,在大型项目中使用ES6这件事,我一直不太敢做.最近公司要求做一个小的H5活动专题,我想不如就在这个小项目中使用E ...

  3. 使用webpack+babel构建ES6语法运行环境

    1.前言 由于ES6语法在各个浏览器上支持的情况各不相同,有的浏览器对ES6语法支持度较高,而有的浏览器支持较低,所以为了能够兼容大多数浏览器,我们在使用ES6语法时需要使用babel编译器将代码中的 ...

  4. webpack打包出错,通过babel将es6转es5的出错。

    错误信息如下: 解决方法: 1,先安装babel-preset-es2015到项目中, cnpm install babel-preset-es2015 --save-dev2,在项目根目录中新建一个 ...

  5. ES6转ES5环境搭配

    1.初始化项目 在项目根目录创建 package.json 文件 npm init //或者 npm init -y 2.安装babel-cli脚手架 npm install babel-cli -- ...

  6. 利用create-react-app从零开始搭建React移动端环境

    一 开始 1 全局安装脚手架 npm install -g create-react-app 这有个坑,就是在window下安装一直会报错,报错信息如下: 解决办法:在开始菜单栏里打开cmd的时,右击 ...

  7. 如何利用Intellij Idea搭建python编译运行环境 (转)

    首先进入Intellij Idea的官方网站:点击打开链接 点击download,选择旗舰版进行下载.网上的破解教程很多,也可以注册一个学生账号拿到一年的免费试用权. 安装过程不再细说,第一次打开选择 ...

  8. 利用QEMU+GDB搭建Linux内核调试环境

    前言 对用户态进程,利用gdb调试代码是很方便的手段.而对于内核态的问题,可以利用crash等工具基于coredump文件进行调试. 其实我们也可以利用一些手段对Linux内核代码进行gdb调试,qe ...

  9. MyEclipse 2015利用Cygwin+CDT搭建C/C++开发环境

    GitHub原文:https://github.com/x113773/testall/issues/22 首先安装Cygwin 1:首先去网站 www.cygwin.com 下载 Cygwin 的 ...

随机推荐

  1. C语言实现字符串IP与整数型IP的相互转换

    #include <stdio.h> #include <stdlib.h> #include <string.h> #include <malloc.h&g ...

  2. STL——配接器(adapters)

    一.配接器 <Design Patterns>一书提到23个最普及的设计模式,其中对adapter样式的定义如下:将一个class的接口转换为另一个class 的接口,使原本因接口不兼容而 ...

  3. TableView头视图高度问题

    www.cnblogs.com/ihojin/p/tableHeaderView-resizeheight.html 有这么一种需求,在列表顶端显示一些别样的数据,而这个别样的数据则需要通过一个别样的 ...

  4. 使用CreateProcess创建新的process 并返回process运行结束返回值

    转自:http://blog.csdn.net/zgl7903/article/details/5975284 转载这篇主要是记住:获得create的新进程运行结束时的返回值的方法 如下:   #in ...

  5. 【IE兼容问题】记一次Manifest因为jquery版本不同导致的兼容问题解决方案X-UA-Compatible

    最近在调试一个jquery插件Manifest 测试过程中发现IE一直不能完全展示这个插件,只显示了一个textbox文本框 IE下的bug的效果图 其他浏览器正常的效果图 跟踪原因,IE下jquer ...

  6. Material Design系列第四篇——Defining Shadows and Clipping Views

    Defining Shadows and Clipping Views This lesson teaches you to Assign Elevation to Your Views Custom ...

  7. 【laravel5.6】 Illuminate\Database\QueryException : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes

    在进行数据迁移时候报错: 特殊字段太长报错, php artisan migrate 现在utf8mb4包括存储emojis支持.如果你运行MySQL v5.7.7或者更高版本,则不需要做任何事情. ...

  8. 【python3】 django2.0 在生成数据库表时报错: TypeError: __init__() missing 1 required positional argument: 'on_delete'

    python: 3.6.4 django: 2.0 models.py 代码如下 # coding: utf-8 from django.db import models from django.co ...

  9. 压力测试工具JMeter入门教程<转>

    1.Jmeter 概要描叙 jmeter 是一款专门用于功能测试和压力测试的轻量级测试开发平台.多数情况下是用作压力测试,该测试工具在阿里巴巴有着广泛的使用,估计是不要钱吧,哈哈,功能上来说,整个平台 ...

  10. Android加载asset的db

    extends:http://blog.csdn.net/lihenair/article/details/21232887 项目需要将预先处理的db文件加载到数据库中,然后读取其中的信息并显示 加载 ...