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 安裝目錄,問題依舊。

暫時沒想到好的處理方法,最直接有效的解決方法就是換英文用戶名。

相關文章
相關標籤/搜索