使用命令,全局安装es-checker

cnpm install -g es-checker

安装好之后,执行以下命令来查看Node.js对ES6的支持情况。

es-checker

可以从输出中查看当前版本的Node.js对ES6的支持情况。

ECMAScript 6 Feature Detection (v1.4.1)

=========================================
Passes 38 feature Detections
Your runtime supports 90% of ECMAScript 6
=========================================

添加ES6支持

首先,使用cnpm init初始化cnpm工作目录,生成package.json文件。

cnpm init -y

接下来,需要安装Babel-cli。全局安装和本地安装都可以。

// 全局安装
cnpm install babel-cli -g
// 本地安装
cnpm install babel-cli --save

然后,安装babel-preset-es2015来支持ES6的语法。

cnpm install babel-preset-es2015 --save 

安装完之后,还需要添加一个名为.babelrc的配置文件。方便babel-cli使用babel-preset-es2015。文件内容如下:

{
"presets": [
"es2015"
],
"plugins": []
}

测试ES6

使用es-checker测试Node.js的时候,发现Node.js不支持import语法。我们可以测试import来验证babel的支持程度。

创建一个index.js文件,内容如下:

import { createServer } from 'http';
 
var server=createServer(function(req,res){
console.log(req.method+':'+req.url);
//console.log(req.method+':'+req.url);
res.writeHead(200,{'Content-Type': 'text/html'});
res.end('<h1>Hello world!</h1>');
}).listen(8060);
console.log('http://localhost:8060');

直接使用Node.js执行index.js:

node index.js

执行结果会报错:

(function (exports, require, module, __filename, __dirname) { import { createServer } from 'http';
^

SyntaxError: Unexpected token {
at new Script (vm.js:79:7)
at createScript (vm.js:251:10)
at Object.runInThisContext (vm.js:303:10)
at Module._compile (internal/modules/cjs/loader.js:657:28)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
at Module.load (internal/modules/cjs/loader.js:599:32)
at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
at Function.Module._load (internal/modules/cjs/loader.js:530:3)
at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
at startup (internal/bootstrap/node.js:282:19)

Node.js不支持import语法。接下来,使用babel来执行index.js。

全局安装的检测比较简单:

babel-node index.js

结果打印出a

http://localhost:8088
GET:/
GET:/favicon.ico

浏览器输入:http://127.0.0.1:8060/  显示如下就成功了!

本地安装的话,可以使用cnpm script来执行命令。在package.json文件的scripts添加命令"babel": "babel-node index.js",然后执行:

cnpm run babel

可以看到控制台有打印出结果。

http://localhost:8088
GET:/
GET:/favicon.ico

浏览器输入:http://127.0.0.1:8060/  显示如下就成功了!

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

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

    为了让 Node.js 支持 ES6 的语法, 需要使用 Babel. 安装 es-checker 在使用 Babel 之前 , 我们先检测一下当前 node 对 es6 的支持情况. 在命令行下执行 ...

  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. 绑定方法和隐藏属性之property装饰器

    目录 一:绑定方法 1.绑定给对象的方法 2.绑定给类的方法 3.非绑定方法之静态方法 二,隐藏属性 1.如何隐藏属性 三,property 装饰器 一:绑定方法 1.绑定给对象的方法 class P ...

  2. 如何保存并复制python虚拟环境

    关于虚拟环境的一些基础概念学习了本期视频 保存 以我的一个虚拟环境示例: 在要保存的虚拟环境下使用: pip freeze > requirements.txt 复制 pip install - ...

  3. python 单元测试 执行测试

    1.在unittest框架中执行测试用例: if __name__ == "__main__": unittest.main() # unittest框架会把以test_开头的实例 ...

  4. ApacheCN 深度学习译文集 20201229 更新

    新增了七个教程: TensorFlow 和 Keras 应用开发入门 零.前言 一.神经网络和深度学习简介 二.模型架构 三.模型评估和优化 四.产品化 TensorFlow 图像深度学习实用指南 零 ...

  5. Python 迁移学习实用指南 | iBooker·ApacheCN

    原文:Hands-On Transfer Learning with Python 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 不要担心自己的形象,只关心如何实现目标.--<原则& ...

  6. 日期类 Date

    import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; impor ...

  7. 有手就行2——持续集成环境—Jenkins安装、插件、用户权限及凭证管理

    有手就行2--持续集成环境-Jenkins安装.插件.权限及凭证管理 持续集成环境(1)-Jenkins安装 持续集成环境(2)-Jenkins插件管理 持续集成环境(3)-Jenkins用户权限管理 ...

  8. python多版本切换

    环境:Macbook MacOS自带的python2.7,在命令行中输入python后会显示2.7版本 如何切换成新版本? 一.修改用户配置环境变量~/.bash_profile 确定新版本的安装位置 ...

  9. java+selenium自动化脚本编写

    实训项目:创盟后台管理,页面自动化脚本编写 使用工具:java+selenium 1)java+selenium环境搭建文档 2)创盟项目后台管理系统链接 java+selenium环境搭建 一.Se ...

  10. Solution -「WC 2022」秃子酋长

    \(\mathscr{Description}\)   Link. (It's empty temporarily.)   给定排列 \(\{a_n\}\),\(q\) 次询问,每次给出 \([l,r ...