Sublime Text 之运行 ES6 (基于babel)

直接进入正文吧。

安装Babel

1
$ npm install -g babel

好了,没什么好说的。

创建Sublime Text编译系统

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

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

然后写如下配置:

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,保存位置默认即可。

好了,现在你可以写 es6 的代码测试下了,下面是运行效果。

Sublime Text 之运行 ES6 (基于babel)

mac 效果

Sublime Text 之运行 ES6 (基于babel)

win 效果

运行失败处理

当然也有运行不了的情况,不过大体就分为下面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 安装目录,问题依旧。

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

相关推荐