使用Package Control組件安裝所需插件
在使用Package Control之前首先要安裝Package Control。
一、簡單的安裝方法
使用Ctrl+`快捷鍵或者通過View->Show Console菜單打開命令行,粘貼如下代碼:
import urllib.request,os,hashlib; h = '2915d1851351e5ee549c20394736b442' + '8bc59f460fa1548d1514676163dafc88'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)
如果順利的話,此時就可以在Preferences菜單下看到Package Settings和Package Control兩個菜單了。
二、手動安裝
可能由於各種原因,無法使用代碼安裝,那可以通過以下步驟手動安裝Package Control:
1.點擊Preferences > Browse Packages菜單
2.進入打開的目錄的上層目錄,然後再進入Installed Packages/目錄
3.下載Package Control.sublime-package並複制到Installed Packages/目錄
4.重啓Sublime Text。
安裝好Package Control之後就可以開始配置React-Native所用到的插件。
babel-sublime
sublimeLinter-jsxhint
JsFormat
sublime-react
1. BABEL-SUBLIME
支持ES6, React.js, jsx代碼高亮,對 JavaScript, jQuery 也有很好的擴展。
安裝
PC:Ctrl+shift+p
Mac:Cmd+shift+p
選擇Package Control:install package
輸入babel進行安裝
配置
打開.js, .jsx 後綴的文档;
打開菜單view, Syntax -> Open all with current extension as… -> Babel -> JavaScript (Babel),選擇babel爲默認 javascript 打開syntax
2. SUBLIMELINTER-JSXHINT
JSX 代碼審查,實時提示語法錯誤, 幫助快速定位錯誤點.
安裝 node.js
安裝 jsxhint
jsxhint安裝:
npm install -g jsxhint
PC上ctrl+shift+p(Mac:Cmd+shift+p)打開面板輸入sublimeLinter-jsx安裝(依賴於 sublimeLinter)
3. JSFORMAT 格式化 JS 代碼
jsformat 是 sublime 上 js 格式化比較好用的插件之一,通過修改它的e4x 屬性可以使它支持 jsx。
安裝
PC上ctrl+shift+p(Mac:Cmd+shift+p)打開面板輸入JsFormat安裝.
使用
打開preferences -> Package Settings -> JsFormat -> Setting - Users,輸入以下代碼:
{ "e4x": true, // jsformat options "format_on_save": true, }
即可保存時自動格式化,並支持 jsx 類型文档.
4. sublime-react
首先必須安裝 Sublime Package Manager.
安裝: ⌘+shift+p on MacOS/Linux, ctrl+shift+p on Windows
輸入 install, 選擇 Package Control: Install Package
輸入 React, 選擇 ReactJS
快捷鍵
cdm→ componentDidMount: fn() { ... } cdup→ componentDidUpdate: fn(pp, ps) { ... } cs→ var cx = React.addons.classSet; cwm→ componentWillMount: fn() { ... } cwr→ componentWillReceiveProps: fn(np) { ... } cwu→ componentWillUpdate: fn(np, ns) { ... } cwun→ componentWillUnmount: fn() { ... } cx→ cx({ ... }) fdn→ React.findDOMNode(...) fup→ forceUpdate(...) gdp→ getDefaultProps: fn() { return {...} } gis→ getInitialState: fn() { return {...} } ism→ isMounted() props→ this.props. pt→ propTypes { ... } rcc→ component skeleton refs→ this.refs. ren→ render: fn() { return ... } scu→ shouldComponentUpdate: fn(np, ns) { ... } sst→ this.setState({ ... }) state→ this.state.