本篇总结几种在WebStorm下使用ES6的方式。

首先要选择Javascript的版本。依次点击"File","Settings","Languages & Frameworks","Javascript",在"Javascript Language Version"中选择"ECMAScript6"。

创建一个名称为calc.js的文件。

class Calc{
constructor(){
console.log('Calc constructor');
} add(a,b){
return a + b;
}
} var c = new Calc();
console.log(c.add(2, 3));

为了让ES6代码编译为ES5代码,需要用到Google的Traceur编译器。

在网页中插入Traceur编译器

创建一个index.html页面如下:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body> <script src="https://traceur-compiler.googlecode.com/git/bin/traceur.js"
type="text/javascript"></script>
<script src="https://traceur-compiler.googlecode.com/git/src/bootstrap.js"
type="text/javascript"></script>
<script>
traceur.options.experimental = true;
</script>
<script type="module" src="js/calc.js"></script> </body>
</html>

这种做法不好之处在于需要能访问到https://traceur-compiler.googlecode.com/git/bin/traceur.js这个文件。

使用Traceur命令行

→ 全局安装Traceur, 在控制台中输入:

npm install -g traceur

→ 在项目中引入Traceur相关文件,在控制台输入:

npm install traceur

→ 使用Traceur命令把es6版本的js/calc.js文件编译成es5版本的out/calc5.js文件。在控制台输入:

traceur --out out/calc5.js js/calc.js --exprimental

在index.html中引用如下两个js文件。

<script src="node_modules/traceur/bin/traceur-runtime.js"></script>
<script src="out/calc5.js"></script>

Traceur结合使用Grunt

→ 重新创建一个项目

→ 依次点击"File","Settings","Languages & Frameworks","Javascript",在"Javascript Language Version"中选择"ECMAScript6"。

→ 在项目中引入Traceur相关文件,在控制台输入:

npm install traceur

→ 确保已安装了GRUNT cli(npm intstall -g grunt-cli)。

→ 在项目中安装Grunt。

npm install grunt --save-dev

→ 安装grunt-traceur-latest插件。

npm install grunt-traceur-latest --save-dev

→ 安装grunt-contrib-watch插件。

npm install grunt-contrib-watch --save-dev

→ 在项目根目录下创建build文件夹以及app.js文件。

→ 在项目根目录下创建js文件夹以及app.js文件。

→ 在项目根目录下添加GruntFile.js文件,如下:

module.exports = function(grunt){
grunt.initConfig({
traceur:{
options:{
exprimental: true
},
custom:{
files:{
'build/app.js':"js/**/*.js"
}
}
}, watch:{
files: "js/**/*.js",
tasks: "traceur"
}
}); grunt.loadNpmTasks('grunt-traceur-latest');
grunt.loadNpmTasks('grunt-contrib-watch');
}

以上就是说,每当js文件夹及其子文件夹中的js文件有变化,就会使用traceur这个任务,把js及其子文件夹中的js文件编译到build/app.js文件中。

→ 在控制台运行如下命令:

grunt watch

→ 在js/app.js中编写如下并保存

console.log(`${1+1}`);

→ 在build/app.js中自动生成如下

"use strict";
var __moduleName = (void 0);
console.log(("" + (1 + 1)));

→ 在项目根目录下创建index.html文件并引用build/app.js文件

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script src="node_modules/traceur/bin/traceur-runtime.js"></script>
<script src="build/app.js"></script>
</body>
</html>

此外,也可以使用www.es6fiddle.net网站编写ES6代码。

WebStorm中使用ES6的几种方式的更多相关文章

  1. linux内核分析作业4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    系统调用:库函数封装了系统调用,通过库函数和系统调用打交道 用户态:低级别执行状态,代码的掌控范围会受到限制. 内核态:高执行级别,代码可移植性特权指令,访问任意物理地址 为什么划分级别:如果全部特权 ...

  2. JavaScript学习12 JS中定义对象的几种方式

    JavaScript学习12 JS中定义对象的几种方式 JavaScript中没有类的概念,只有对象. 在JavaScript中定义对象可以采用以下几种方式: 1.基于已有对象扩充其属性和方法 2.工 ...

  3. Shell脚本中执行mysql的几种方式(转)

    Shell脚本中执行mysql的几种方式(转) 对于自动化运维,诸如备份恢复之类的,DBA经常需要将SQL语句封装到shell脚本.本文描述了在Linux环境下mysql数据库中,shell脚本下调用 ...

  4. Java中HashMap遍历的两种方式

    Java中HashMap遍历的两种方式 转]Java中HashMap遍历的两种方式原文地址: http://www.javaweb.cc/language/java/032291.shtml 第一种: ...

  5. JAVA中集合输出的四种方式

    在JAVA中Collection输出有四种方式,分别如下: 一) Iterator输出. 该方式适用于Collection的所有子类. public class Hello { public stat ...

  6. android中解析文件的三种方式

    android中解析文件的三种方式     好久没有动手写点东西了,最近在研究android的相关技术,现在就android中解析文件的三种方式做以下总结.其主要有:SAX(Simple API fo ...

  7. jQuery中开发插件的两种方式

    jQuery中开发插件的两种方式(附Demo) 做web开发的基本上都会用到jQuery,jQuery插件开发两种方式:一种是类扩展的方式开发插件,jQuery添加新的全局函数(jQuery的全局函数 ...

  8. Struts中的数据处理的三种方式

    Struts中的数据处理的三种方式: public class DataAction extends ActionSupport{ @Override public String execute() ...

  9. JavaScript学习12 JS中定义对象的几种方式【转】

    avaScript学习12 JS中定义对象的几种方式 转自:  http://www.cnblogs.com/mengdd/p/3697255.html JavaScript中没有类的概念,只有对象. ...

随机推荐

  1. android上使用蓝牙设备进行语音输入

    主要实现步骤如下:1.确保已经和蓝牙耳机配对连接上.2.开启蓝牙信道AudioManager mAudioManager = (AudioManager)getSystemService(Contex ...

  2. 盒子模型与flex模型

    一.盒子模型 注意:两个相邻元素的margin值是重叠在一起的,取当中最大的那个值. 水平方向auto, margin:0 auto;会居中    但是margin-left:auto;,元素会到最右 ...

  3. Linux 下crontab 详解转

    http://yaksayoo.blog.51cto.com/510938/162062 Linux计划任务工具cron用法详解 linux下大名鼎鼎的计划任务工具crontab的使用介绍baidu. ...

  4. Codeforces Round #355 (Div. 2) D. Vanya and Treasure

    题目大意: 给你一个n × m 的图,有p种宝箱, 每个点上有一个种类为a[ i ][ j ]的宝箱,a[ i ][ j ] 的宝箱里有 a[ i ][ j ] + 1的钥匙,第一种宝箱是没有锁的, ...

  5. rabbitMQ的安装(Windows下)

    在公司接触到这一块,信息中间件的使用,在公司没有时间了解的更加深入,只是在简单的使用,这里将深入学习一番. 参考:http://blog.csdn.net/lu1005287365/article/d ...

  6. oracle数据库连接错误解决办法

    ORA-28547 连接服务器失败,可能是Oracle Net 管理错误 原文地址:http://www.linuxidc.com/Linux/2014-11/109686.htm 上周去给客户培训O ...

  7. bugku web题INSERT INTO注入

    0x01: 打开题目描述,已经将源码给了我们: <?php error_reporting(0); function getIp(){ $ip = ''; if(isset($_SERVER[' ...

  8. 容器(Container)Frames和Panels

    Frames 1)是Window的子类 2)具有标题和缩放角 3)从容器继承并以add方式添加组件 4)能以字符串规定的标题来创建不可见框架对象 5)能将BorderLayout当做缺省布局管理器 6 ...

  9. HTML基础单页面总结(基于w3school教程)

    学习了一阵http://www.w3school.com.cn网站上的html教程,发现各个知识点比较分散,个人比较倾向于用一页html文档就把所有涉及的基本html标签元素知识点都展示出来的形式.个 ...

  10. Prufer codes与Generalized Cayley's Formula

    Prufer序列 在一棵n个节点带标号树中,我们认为度数为1的点为叶子.n个点的树的Prufer序列是经过下面流程得到的一个长度为n-2的序列. 1.若当前树中只剩下两个点,退出,否则执行2. 2.找 ...