各大浏览器厂商对es2015功能支持不完全,等到全部支持会等很长时间,如果现在使用es2015,可以选择babel一个将ES6/ES7写的代码转换为ES5代码的编译器.

我们选择使用gulp自动化编译生成es5代码.

假设你已经安装过了nodejs.

配置开发环境:

1. 建立工程目录:

  1. $mkdir test && cd test

2. 新建工程配置文件package.json

  1. $npm init

3. 安装gulp工具

  1. $npm install --save-dev gulp gulp-babel gulp-concat gulp-sourcemaps babel-preset-es2015

4. 新建gulp配置文件

  1. $vim gulpfile.js

写入代码gulpfile.js:

  1. const gulp = require("gulp");
  2.  
  3. const sourcemaps = require("gulp-sourcemaps");
  4.  
  5. const babel = require("gulp-babel");
  6.  
  7. const concat = require("gulp-concat");
  8.  
  9. gulp.task('default', () =>
  10.  
  11. gulp.src('src/**/*.js')
  12.  
  13. .pipe(babel({
  14.  
  15. presets: 'es2015'
  16.  
  17. }))
  18.  
  19. .pipe(gulp.dest('dist'))
  20.  
  21. );
  22.  
  23. //生成sourcemaps
  24.  
  25. gulp.task('all', () =>
  26.  
  27. gulp.src('src/**/*.js')
  28.  
  29. .pipe(sourcemaps.init())
  30.  
  31. .pipe(babel({
  32.  
  33. presets: 'es2015'
  34.  
  35. }))
  36.  
  37. .pipe(concat('all.js'))
  38.  
  39. .pipe(sourcemaps.write('.'))
  40.  
  41. .pipe(gulp.dest('dist'))
  42.  
  43. );

5. 测试是否配置成功

  1. mkdir src && cd src && vim app.js

写入代码:

  1. function f() {
  2.  
  3. let x;
  4.  
  5. {
  6.  
  7. // okay, block scoped name
  8.  
  9. const x = "sneaky";
  10.  
  11. // error, const
  12.  
  13. //x = "foo";
  14.  
  15. console.log(x);
  16.  
  17. }
  18.  
  19. // okay, declared with `let`
  20.  
  21. x = "bar";
  22.  
  23. // error, already declared in block
  24.  
  25. //let x = "inner";
  26.  
  27. console.log(x);
  28.  
  29. }
  30.  
  31. f();

6.执行

  1. $gulp

会自动生成dest目录,包含app.js文件,是转化过的js.恭喜你已经学会!

gulp-babel使用的更多相关文章

  1. gulp+Babel 搭建ES6环境

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

  2. 让浏览器兼容ES6语法(gulp+babel)

    使用gulp+babel搭建ES6环境 前言 我们查阅资料可以知道ECMAScript 2015(简称ES6)已经于2015年发布,由于用户使用的浏览器版本在安装的时候可能早于ES6的发布,而到了今天 ...

  3. gulp+babel 实时转es6

    1.安装gulp  npm install gulp 2.得到package.json文件  npm init 2.全局安装Babel. npm install -g babel-cli    npm ...

  4. Gulp Babel AMD转换例子

    1.gulpfile.js var gulp = require('gulp'); const babel = require('gulp-babel'); gulp.task('default', ...

  5. ES6转ES5:Gulp+Babel

    目标: ES6代码转成ES5 对转换后的ES5进行压缩 以上步骤自动监控执行 步骤: 1.安装插件 在命令行中定位到项目根目录 安装全局 Gulp npm install -g gulp 安装项目中使 ...

  6. gulp+babel面向未来变成

    1.需要本地安装node; 2.安装gulp: 3.在项目根目录启动node; 安装babel组件: npm install --save-dev babel-core npm install --s ...

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

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

  8. gulp babel 配置不报错也没有输出结果的原因

    环境: "@babel/core": "^7.1.6", "gulp-babel": "^8.0.0", "@ ...

  9. gulp 安装笔记

    1.全局安装cnpm(淘宝的npm国内镜像),gulp,rimraf(卸载用插件)npm install -g cnpm --registry=https://registry.npm.taobao. ...

  10. 使用babel编译es6

    起因:开发中慢慢的学习使用es6,但是JavaScript需要浏览器来解析,而不是所有浏览器都支持es6,所以为了兼容es6,需要第三方工具进行编译es6. 工具:node,gulp,gulp-bab ...

随机推荐

  1. erlang 虚机CPU 占用高排查

    -问题起因 近期线上一组服务中,个别节点服务器CPU使用率很低,只有其他1/4.排除业务不均,曾怀疑是系统top统计错误,从Erlang调度器的利用率调查 找到通过erlang:statistics( ...

  2. ASP.NET MVC 5 Jquery Validate

    ClientValidationEnabled 在asp.net mvc 5中ClientValidationEnabled默认为TRUE,所以也不需要刻意去设置 应用ValidationAttrib ...

  3. sql查询删除重复数据

    数据库UserInfo 删除重复数据 即删除重复的用户名手机号 同一个用户名手机号只保留一个用户 01.根据多个字段查询重复数据 with data1 as( select MobilePhone,N ...

  4. Windows 网络通讯开发

    Windows 网络通讯开发 一.Windows网络开发API 由于C++标准库中没有网络库,所以进行网络开发的时候要调用系统API.Windows通讯开发API包括以下几个基本函数及成员类型: 1. ...

  5. 设计模式--享元模式Flyweight(结构型)

    一.享元模式 在一个系统中如果有多个相同的对象,这些对象有部分状态是可以共享的,我们运用共享技术就能有效地支持大量细粒度的对象. 二.例子 举个围棋的例子,围棋的棋盘共有361格,即可放361个棋子. ...

  6. win10 安装framework3.5

    win+x 点击命令提示符(个管理员) 输入dism.exe /online /enable-feature /featurename:NetFX3 /Source:H:\sources\sxs(解压 ...

  7. iOS self

    如果self在对象方法中 那么self就代表调用当前对象方法的那个对象 如果self在类方法中 那么self就代表调用当前类方法的那个类 总结:self的使用只需关注self在哪个方法中 如果在类方法 ...

  8. prototype继承(1)

    如果替换了prototype对象, o.prototype = {};那么,下一步必然是为新的prototype对象加上constructor属性,并将这个属性指回原来的构造函数. o.prototy ...

  9. JS string 截取

    subStubstring(a,b); a:开始索引 b:结束索引 subStr(c,d) c:开始索引 d:截取数量.

  10. Denormalization 2

    In a relational database, denormalization is an approach to speeding up read performance (data retri ...