linux中,给nodejs安装babel

在使用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工具,顺便给我说说结果,懒得删了~。