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 的代码测试下了,下面是运行效果。
mac 效果
win 效果
运行失败处理
当然也有运行不了的情况,不过大体就分为下面2种。
一. 环境变量
如果执行不了,而是报错,错误类似xxx babel-node: command not found这样的,那么就是环境变量的问题。
只要添加下node和babel-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 安装目录,问题依旧。
暂时没想到好的处理方法,最直接有效的解决方法就是换英文用户名。