为了让 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. React事件初探

    作者:朱灵子 React 是一个 Facebook 和 Instagram 用来创建用户界面的 JavaScript 库.创造 React 是为了解决一个问题:构建随着时间数据不断变化的大规模应用程序 ...

  2. Linux系统中/dev/mtd与/dev/mtdblock的区别,即MTD字符设备和块设备的区别

    转:http://www.crifan.com/linux_system_in__dev__mtd_and__dev__mtdblock_distinction_character_devices_a ...

  3. OpenERP实施记录(13):出库处理

    本文是<OpenERP实施记录>系列文章的一部分. 在前面的文章中,业务部门接到沃尔玛3台联想Y400N笔记本电脑的订单,ABC公司立即采购了8台(3台送货+5台备库存)回来,完成了入库和 ...

  4. Oracle EBS R12 - 怎样更改SYSADMIN的password

    SQL> select * from v$version; BANNER ------------------------------------------------------------ ...

  5. oracle sql 优化大全

    转自: http://panshaobinsb.iteye.com/blog/1718233 http://yulimeander.blog.sohu.com/115850824.html 最近遇到了 ...

  6. 20.custom自定义线程池

    自定义线程池 1.若Executors工厂类无法满足需求,可以自己使用工厂类创建线程池,底层都是使用了); ThreadPoolExecutor threadPoolExecutor = new Th ...

  7. iOS:CoreData数据库的使用二(创建多个数据库表,表之间有对应关系)

    CoreData数据库框架是一个封装性好,功能强大数据库,它底层使用的还是sqlite数据库,不过苹果公司在其基础上,为其封装新和安全性的维护上做了大量的处理,例如对一些事物做了详细的操作,如读脏数据 ...

  8. 第十章 springboot + logback

    logback是boot默认的日志首选,个人觉得是最好的日志实现(比log4j好) 下边,在之前的代码基础上增加一个功能,该功能要实现mybatis的and or联查功能,并通过logback日志在控 ...

  9. go语言基础之包和自定义包与main包

    1.包 所有 Go 语言的程序都会组织成若干组文件,每组文件被称为一个包.这样每个包的代码都可以作为很小的复用单元,被其他项目引用. 一个包的源代码保存在一个或多个以.go为文件后缀名的源文件中,通常 ...

  10. Kotlin 特性 语法糖 优势 扩展 高阶 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...