为了让 Node.js 支持 ES6 的语法, 需要使用 Babel。

安装 es-checker

在使用 Babel 之前 , 我们先检测一下当前 node 对 es6 的支持情况。

在命令行下执行以下命令安装 es-checker

npm install -g es-checker

安装完毕以后, 命令行执行:

es-checker

我的 node 环境版本是v4.5.0, 支持 69%

ECMAScript  Feature Detection (v1.4.0)

=========================================
Passes feature Detections
Your runtime supports % of ECMAScript
=========================================
安装 babel

首先新建一个工作目录,然后创建一个 package.json 的文件,内容为:

{
"name": "my-project",
"version": "1.0.0",
"devDependencies": {}
}

然后在工作目录下打开命令行,执行以下命令安装 babel-cli

npm install babel-cli --save

再安装一个全局的 babel-cli

npm install babel-cli -g

接着在工作目录创建一个名字为 .babelrc 的文件, 文件内容入如下:

 {
"presets": [
"es2015"
],
"plugins": []
}
安装 babel-preset-es2015

在工作目录,执行以下命令安装 babel-preset-es2015

npm install babel-preset-es2015 --save
测试 es6

创建一个 test.js 的文件, 键入内容:

'use strict';

function foo(a, b, ...rest) {
console.log('a = ' + a)
console.log('b = ' + b)
console.log(rest)
} foo(1, 2, 3, 4, 5)

在当前目录下执行:

babel-node test.js

结果如下:

a =
b =
[, , ]

如果直接执行:

node test.js

会报异常: SyntaxError: Unexpected token ...

转: https://www.jianshu.com/p/a9c27b80af9d

让 Node.js 支持 ES6 的语法的更多相关文章

  1. 让Node.js支持ES6的语法

    使用命令,全局安装es-checker: cnpm install -g es-checker 安装好之后,执行以下命令来查看Node.js对ES6的支持情况. es-checker 可以从输出中查看 ...

  2. node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法

    1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...

  3. mongoskin 是让 Node.js 支持 MongoDB 的内嵌访问层。

    mongoskin 是让 Node.js 支持 MongoDB 的内嵌访问层.

  4. 如何安装node.js支持插件

    在eclipse插件中,node.js插件中比较知名的是nodeclipse. 从HBuilder6.3起,工具-插件安装,可直接选择nodeclipse插件安装.安装完毕后重启HBuilder新建n ...

  5. [Node.js] Using ES6 and beyond with Node.js

    If you're used to using all the latest ES6+ hotness on the front end via Babel, working in Node.js c ...

  6. [Node.js] Testing ES6 Promises in Node.js using Mocha and Chai

    Writing great ES6 style Promises for Node.js is only half the battle. Your great modules must includ ...

  7. Node.js用ES6原生Promise对异步函数进行封装

    Promise的概念 Promise 对象用于异步(asynchronous)计算..一个Promise对象代表着一个还未完成,但预期将来会完成的操作. Promise的几种状态: pending:初 ...

  8. vue-cli 部分浏览器不支持es6的语法-babel-polyfill的引用和使用

    npm install --save-dev babel-polyfill babel-polyfill用正确的姿势安装之后,引用方式有三种: 1.require("babel-polyfi ...

  9. [转载]Visual Studio支持Node.js

    http://news.cnblogs.com/n/193893/ https://nodejstools.codeplex.com/ 微软发布了一个官方插件“Node.js Tools for Vi ...

随机推荐

  1. 为11gR2 Grid Infrastructure增加新的public网络

    在某些环境下,运行11.2版本的RAC数据库的服务器上,连接了多个public网络,那么就会有如下的需求: 给其他的,或者说是新的public网络增加新的VIP地址. 在新的public网络上增加SC ...

  2. Go:如何组织代码

    备注 此文主要是对官方教程的学习总结,官方教程:http://golang.org/doc/code.html. 工作空间(Workspaces) Go代码必须保持在一个workspace,works ...

  3. 第九章openwrt 703N 网口转串口+串口转网口TTL 数据传输

    原生串口      1.WR703N 自带 TTL 电平串口,设备文件为/dev/ttyATH0, 波特率 115200.但是硬件串口 没有接出来,需要自己焊线.破壳. 图 1. 正面图.两根线 TP ...

  4. Meanshift,聚类算法(转)

    原帖地址:http://www.cnblogs.com/liqizhou/archive/2012/05/12/2497220.html   记得刚读研究生的时候,学习的第一个算法就是meanshif ...

  5. Qt 事件处理机制 (上篇)

    本篇来介绍Qt 事件处理机制 .深入了解事件处理系统对于每个学习Qt人来说非常重要,可以说,Qt是以事件驱动的UI工具集. 大家熟知Signals/Slots在多线程的实现也依赖于Qt的事件处理机制. ...

  6. Linux下读取RFID卡号(C串口编程)

    由于项目需要用到RFID.GPRS.摄像头等模块所以便看了一下,整理了一下学习思路,本篇先是整理一下串口读取RFID卡号的程序思路,后面还会更其他的 RFID模块: 本次采用的是125K的RFID读卡 ...

  7. vmwareubuntu18.04网络配置

    用vm安装ubuntu的时候要如果使用的是net模式,要确保vm的net服务和dhcp服务开启了,右键我的电脑-管理-服务和应用程序-服务找到对应的vm net服务和dhcp服务启动.

  8. jquery动态添加删除div--事件绑定,对象克隆

    我想做一个可以动态添加删除div的功能.中间遇到一个问题,最后在manong123.com开发文摘 版主的热心帮助下解答了(答案在最后) 使用到的jquery方法和思想就是:事件的绑定和销毁(unbi ...

  9. 【云计算】使用privilege权限对Docker内核参数进行定制

    探讨Docker容器中修改系统变量的方法 探讨完Docker对共享内存状态持久化的支持状况后,我将遗留产品build到一个pre-production image中,测试启动是否OK.很显然,我过于乐 ...

  10. 使用webService时,gsoap数据类型注意事项

    今天在使用gsoap生成webservice客户端文件时,发现我的参数类型全被改了,比如string型变成了char*,原来有STL的地方也变没了,经过研究发现,原来和我生成的头文件时使用的参数有关, ...