让Node.js支持ES6的语法
使用命令,全局安装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文件,内容如下:
直接使用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的语法的更多相关文章
- 让 Node.js 支持 ES6 的语法
为了让 Node.js 支持 ES6 的语法, 需要使用 Babel. 安装 es-checker 在使用 Babel 之前 , 我们先检测一下当前 node 对 es6 的支持情况. 在命令行下执行 ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- mongoskin 是让 Node.js 支持 MongoDB 的内嵌访问层。
mongoskin 是让 Node.js 支持 MongoDB 的内嵌访问层.
- 如何安装node.js支持插件
在eclipse插件中,node.js插件中比较知名的是nodeclipse. 从HBuilder6.3起,工具-插件安装,可直接选择nodeclipse插件安装.安装完毕后重启HBuilder新建n ...
- [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 ...
- [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 ...
- Node.js用ES6原生Promise对异步函数进行封装
Promise的概念 Promise 对象用于异步(asynchronous)计算..一个Promise对象代表着一个还未完成,但预期将来会完成的操作. Promise的几种状态: pending:初 ...
- vue-cli 部分浏览器不支持es6的语法-babel-polyfill的引用和使用
npm install --save-dev babel-polyfill babel-polyfill用正确的姿势安装之后,引用方式有三种: 1.require("babel-polyfi ...
- [转载]Visual Studio支持Node.js
http://news.cnblogs.com/n/193893/ https://nodejstools.codeplex.com/ 微软发布了一个官方插件“Node.js Tools for Vi ...
随机推荐
- MySQL存储引擎(最全面的概括)
目录 一:MySQL存储引擎 1.什么是存储引擎? 2.查看存储引擎信息 二:MySQL支持的存储引擎 1.存储引擎 三:innoDB存储引擎 1.特性 2.存储结构 3.优缺点.适用场景 四:MyI ...
- atomic 原子自增工程用法案例
案例 1 : 简单用法 atomic_int id; atomic_fetch_add(&id, 1) atomic_uint id; atomic_fetch_add(&id, 1) ...
- 「Celeste-B」Say Goodbye
做法一 提供一个后半部分略微不同的做法. 首先,基环旋转同构肯定是用 Burnside 那套理论求不动点来解,设 \(f(n, m)\) 为每种颜色 \(/m\) 构成 \(n\) 棵(树之间有标号) ...
- AT2163 [AGC006B] Median Pyramid Easy
需要一点灵感的题目. 可以发现这样一个事情,当三个数中有两个数相同时,中为数一定是这两个相同的数. 基于这个观察,我们想让每一行都存在这样两个相同的两个数,就一定能保证第一层的值为 \(x\) 了. ...
- 羽夏闲谈—— C 的 scanf 的高级用法
前言 今天看到博友发了个有关scanf的使用的注意事项,就是讨论缓冲区残存数据的问题,用简单的代码示例复述一下: #define _CRT_SECURE_NO_WARNINGS #include ...
- Java 书写规范简单整理
本文带有华为Logo的PPT图片,引自:华为云课堂 目录 Java基础语句使用规范 选择结构 switch 默认要有default分支 注意break的使用 如果使用枚举,并且选项已全部列出,可以没有 ...
- 自定义 RestTemplate 异常处理 (转)
转自:https://ethendev.github.io/2018/11/06/RestTemplate-error-handler/ 一些 API 的报错信息通过 Response 的 body返 ...
- 在TCP文件传输中如何判断java流的末尾
感谢前辈们的解答:https://bbs.csdn.net/topics/280085530 问题描述: 服务端向客户端发送数据流,服务端发完了数据不关闭流. 我在客户端读流,我无法读到-1,所以无法 ...
- 微擎site.php函数以及路由连接
任务1: 微擎模块设计: module.php 规则类: 会调用module.php manifest.xml中业务菜单对应的模块 如果在site.php中没有相应的函数 比如 /web/index. ...
- NSPredicate类,指定过滤器的条件---董鑫
/* 比较和逻辑运算符 就像前面的例子中使用了==操作符,NSPredicate还支持>, >=, <, <=, !=, <>,还支持AND, OR, NOT(或写 ...