1. 程式人生 > >Sublime3玩轉ES6+ReactJs

Sublime3玩轉ES6+ReactJs

前言

Webpack+React+ES6無疑是目前最火熱的開發模式了,為了與時俱進,開始對它進行探索和學習。工欲善其事必先利其器,眾所周知,ES6和JSX都是新的語法,而目前的Sublime2已經力不從心了,作為Sublime的忠實粉絲,換IDE又得重新適應,於是折騰了一番,升級Sublime3,不斷找相應外掛,這裡給大家分享一下必備的語法高亮、格式化、jsx的htlm自動補全、es6語法檢查外掛和安裝時遇到的坑。

1.下載Sublime3

2.安裝Package Control

離線安裝:

1.把下載好的zip包解壓,重新命名為Package Control。

2.開啟Sublime3,選單->Preferences->Browse Packages…然後複製Package Control資料夾到該目錄。

3.重啟Sublime3,如果選單->Preferences有Package Setting和Package Control就說明安裝成功。

4.Ctrl+Shift+p輸入install選中Install Package回車就可以安裝外掛。

3.安裝外掛

Babel
Sublime3才有的外掛,支援ES6、JSX語法高亮。

選單->View->Syntax->Open all with current extension as…->Babel->JavaScript(Babel) 高亮了有木有。

JsFormat
剛開始在JSX檔案格式化後慘不忍睹,其實配置一個屬性就可以支援JSX語法格式化。

選單->Preferences->Package Settings->JsFormat->Settings-User加入以下程式碼

{
  "e4x": true,//支援jsx格式化
  "format_on_save": true//儲存立即格式化,看個人喜好
} 

Emmet
這個html標籤自動補全的神外掛相信很多人都用上了,非常便捷,現在可以通過配置實現JSX的html內容自動補全。

安裝完Emmet後會自動安裝一個PyV8的依賴外掛,但網路不穩定會失敗,可以通過自行下載。

下載完後新建一個PyV8資料夾,把下載的包解壓到該資料夾中,放到 C:\Users\yourname\AppData\Roaming\Sublime Text 3\Installed Packages下,與Emmet同一個資料夾下(Emmet安裝完是在Installed Packages下而不是Packages) 。

選單->Preferences->Key Bindings - User加上以下程式碼(keys就是觸發自動補全的按鍵,可自定義)

[{
  "keys": [
    "tab"
  ],
  "args": {
    "action": "expand_abbreviation"
  },
  "command": "run_emmet_action",
  "context": [{
    "key": "emmet_action_enabled.expand_abbreviation"
  }]
}, {
  "keys": ["tab"],
  "command": "expand_abbreviation_by_tab",
  "context": [{
    "operand": "source.js",
    "operator": "equal",
    "match_all": true,
    "key": "selector"
  }, {
    "key": "preceding_text",
    "operator": "regex_contains",
    "operand": "(\\b(a\\b|div|span|p\\b|button)(\\.\\w*|>\\w*)?([^}]*?}$)?)",
    "match_all": true
  }, {
    "key": "selection_empty",
    "operator": "equal",
    "operand": true,
    "match_all": true
  }]
}]

看下效果:

這裡寫圖片描述

自動補全的是className而不是class,so far so good!

(坑:網上有些教程是說複製PyV8資料夾到Packages,當按tab鍵,死活無效,這時ctrl+`看Sublime3的控制檯報了這個錯誤:

AttributeError: ‘module’ object has no attribute ‘JSContext’

被折騰了很久才知道PyV8必須要和Emmet同目錄。)

程式碼檢查
1.首先安裝SublimeLinter、SublimeLinter-jshint、SublimeLinter-jsxhint、SublimeLinter-contrib-eslint外掛。

2.然後命令列全域性安裝

npm install -g eslint
npm install -g babel-eslint
npm install -g eslint-plugin-react
npm install -g jsxhint

3.以ES6語法檢查為例,在專案工程根目錄新建.eslintrc,輸入

{
"parserOptions": {
    "ecmaVersion": 6,
    "sourceType": "module",
    "ecmaFeatures": {
        "jsx": true
    }
},
"rules": {
    "semi": ["error", "always"]
    }
}

4.開啟Sublime3,選單->Tools->SublimeLinter->Toggle Linter…就可以開啟js、jsx、es6檢查規則。注意:當使用es6開發時務必把jshint關掉,否則報一堆警告錯誤。

總結

到此基本可以歡樂地用Sublime開擼ES6和ReactJs了。