让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/ 显示如下就成功了!
最新文章
- Newtonsoft.Json 序列化和反序列化 时间格式【转】
- python: DOM 小实例
- IOS App 右上脚红色数字提醒
- soanar,jenkins
- ncp的简单实用
- AngularJS小试牛刀
- 使用python在SAE上搭建一个微信应用,使用有道翻译的api进行在线翻译
- debian linux下配置lnmp环境
- android自动化测试解决跨进程通信问题
- notebook kernels
- HDU 1269 迷宫城堡 【强联通分量(模版题)】
- TCP/IP-UDP
- ViewState探索
- javaScript基础概念小知识点集
- Codeforces Round #416(Div. 2)-811A.。。。 811B.。。。 811C.dp。。。不会
- 编写高质量的Python代码系列(二)之函数
- configure - 源代码安装的第一步
- Django REST Framework API Guide 05
- 鸟哥的Linux私房菜——第十八章:磁盘配额quota
- Ubuntu登录系统失败的解决方案