在使用node的时候,看到别人家的代码都是var http=require('http')
之类的,我就好奇,node不是都已经开始支持es2015了吗?为毛还用var?果断改用let!duang!!!
/home/xiejk/projects/node/first/server.js:2
let http = require('http');
^^^^
SyntaxError: Unexpected identifier
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:902:3
感受一下我看到这个异常时的差异,果断百度之。哦,原来还要用babel变异一下,下面就是安装babel的流程了:
1.先来测试一下node对es6的支持情况,安装一个检查工具es-checker,执行如下命令
npm -g install es-checker
安装完成,执行命令:es-checker
,得到es6的支持性
创建一个工作目录,新建package.json文件,文件内容如下
{
"name":"my-project",
"version":"1.0.0",
"devDependencies": {
}
}
保存,退出,执行命令npm --save-dev install babel-cli
在安装一个全局的babel-cli,执行命令npm -g install babel-cli
再在工作目录下创建.babelrc文件,文件内容:
{
"presets": [
"es2015"
],
"plugins": []
}
最后,安装babel-preset-es2015,命令npm -install --save-dev babel-preset-es2015
自己写个包含let之类关键字的js文件来测试。
说个悲伤的事,我在装完插件之后,得到的提示:
SyntaxError: Block-scoped declarations (let, const, function, class) not yet supported outside strict mode
加上'use strict'就不报错了,不知道插件是不是白装了~~~,希望你们看到这里的时候还没开始装babel工具,顺便给我说说结果,懒得删了~。