Sublime Text 之运行 ES6 (基于babel)

直接进入正文吧。javascript

安装Babel

 

1
$ npm install -g babel

 

好了,没什么好说的。java

建立Sublime Text编译系统

选择菜单Tools –> Build System –> new Build System…node

中文版的话是工具 –> 编译系统 –> 新建编译系统…linux

而后写以下配置:es6

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
    "working_dir": "${project_path:${folder}}",
    "selector": "source.js",
    "encoding": "utf-8",
    "shell": true,
    "windows": {
        "cmd": ["taskkill /f /im node.exe >nul 2>nul & babel-node $file"]
    },
    "osx": {
        "cmd": ["killall node >/dev/null 2>&1; babel-node $file"]
    },
    "linux": {
        "cmd": ["killall node >/dev/null 2>&1; babel-node $file"]
    }
}

 

接着保存为javascript.sublime-build,保存位置默认便可。shell

好了,如今你能够写 es6 的代码测试下了,下面是运行效果。npm

mac 效果windows

win 效果babel

运行失败处理

固然也有运行不了的状况,不过大致就分为下面2种。工具

一. 环境变量

若是执行不了,而是报错,错误相似xxx babel-node: command not found这样的,那么就是环境变量的问题。
只要添加下nodebabel-node的路径到环境变量里。

若是是mac下,我推荐添加path属性到你的javascript.sublime-build里,会更方便。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
    "path": "/usr/local/bin",
    "working_dir": "${project_path:${folder}}",
    "selector": "source.js",
    "encoding": "utf-8",
    "shell": true,
    "windows": {
        "cmd": ["taskkill /f /im node.exe >nul 2>nul & babel-node $file"]
    },
    "osx": {
        "cmd": ["killall node >/dev/null 2>&1; babel-node $file"]
    },
    "linux": {
        "cmd": ["killall node >/dev/null 2>&1; babel-node $file"]
    }
}

 

就相似这样,mac 下就能够运行了。 win 下安装 node 默认就添加到环境变量了,因此不须要考虑这样的问题。

二. 含有中文路径 (仅win)

当路径里出现中文的时候,win 下什么都不会输出,好奇怪,我也不知道为何,但 mac 下能够正常运行。
他们惟一区别只是环境字符集一个默认是 gbk,一个是 utf-8,难道只是这个问题?
若是有哪位大神知道,还望指点一二。

三. 中文用户名 (仅win)

若是你的系统用户名是中文的,我指的是系统登陆的用户名,若是是中文的,那么怎么都运行不了,奇怪了。
一开始我觉得是C:Users用户名AppDataRoamingnpm这个问题,可是我修改了 npm 安装目录,问题依旧。

暂时没想到好的处理方法,最直接有效的解决方法就是换英文用户名。

相关文章
相关标签/搜索