開發(fā)工具系列--sublime配置react開發(fā)環(huán)境(轉(zhuǎn))

(轉(zhuǎn))http://www.cnblogs.com/terrylin/p/4942332.html

Sublime有很強(qiáng)的自定義功能,插件庫(kù)很龐大臂港,針對(duì)新語(yǔ)言插件更新很快巷蚪,配合使用可以快速搭建適配語(yǔ)言的開發(fā)環(huán)境帮孔。

1.babel-sublime

支持ES6克胳, React.js, jsx代碼高亮,對(duì) JavaScript, jQuery 也有很好的擴(kuò)展捎拯。

安裝

PC:Ctrl+shift+p

Mac:Cmd+shift+p

打開面板輸入babel安裝

配置

打開.js, .jsx 后綴的文件;

打開菜單view泪幌,Syntax -> Open all with current extension as... -> Babel -> JavaScript (Babel),選擇babel為默認(rèn) javascript 打開syntax

2.sublimeLinter-jsxhint

JSX 代碼審查署照,實(shí)時(shí)提示語(yǔ)法錯(cuò)誤, 幫助快速定位錯(cuò)誤點(diǎn).

安裝

PC上ctrl+shift+p(MacCmd+shift+p)打開面板輸入sublimeLinter-jsx安裝(依賴于sublimeLinter)

安裝node.js

安裝jsxhint

npm install -g jsxhint

3. 修改Emmet兼容jsx 文件

emmet 作為前端開發(fā)必備插件之一非常方便快捷祸泪,通過(guò)修改默認(rèn)的 sublime就可以在 jsx 文件中快速通過(guò) emmet 編寫自定義組件。

安裝

PC上ctrl+shift+p(MacCmd+shift+p)打開面板輸入emmet安裝

使用方法

打開preferences -> Key bindings - Users建芙,把下面代碼復(fù)制到[]內(nèi)部没隘。

{? ? ? "keys":["super+e"? ? ? ],? ? ? "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}]}

使用super+e觸發(fā) emmet;正則判斷用 a禁荸,div右蒲,span,p赶熟,button標(biāo)簽?zāi)J(rèn)tab 觸發(fā)瑰妄;默認(rèn) class 修改為 className。

注:

supre+e 在 PC 上指的是win+e(pc 建議修改為emmet 默認(rèn)按鍵ctrl+e),在 mac 上指的是cmd+e

以上規(guī)則來(lái)源于StackOverflow映砖,正則小有修改

4.JsFormat格式化 js 代碼

jsformat 是 sublime 上 js 格式化比較好用的插件之一间坐,通過(guò)修改它的e4x屬性可以使它支持 jsx。

安裝

PC上ctrl+shift+p(MacCmd+shift+p)打開面板輸入JsFormat安裝.

使用

打開preferences -> Package Settings -> JsFormat -> Setting - Users,輸入以下代碼:

{? "e4x":true,? // jsformat options? "format_on_save":true,}

即可保存時(shí)自動(dòng)格式化,并支持 jsx 類型文件.

5. 編譯 jsx

使用babel-sublime

帶有編譯 jsx 的命令 babel build竹宋。使用 babel 編譯 jsx 也由 React 項(xiàng)目官方引用劳澄。該命令依賴于 node 包babel。babel 同時(shí)也支持 ES6的新語(yǔ)法經(jīng)過(guò)編譯在瀏覽器中運(yùn)用蜈七。

npm install -g babel

在 sublime 中使用ctrl+shift+p打開面板輸入babel transform自動(dòng)編譯成 react.js 文件

使用自動(dòng)化構(gòu)建工具(gulp|grunt 等)

gulp為例(依賴gulp,需提前安裝):

npm install gulp-babel

/** * babel */var gulp =require('gulp'),? babel =require('gulp-babel');gulp.task('babel',function() {return gulp.src('./src/**/*.jsx')? ? .pipe(babel())? ? .pipe(gulp.dest('./dist'));

});

在命令行中輸入 gulp babel 運(yùn)行

配合 BrowserSync 使用可以實(shí)時(shí)監(jiān)測(cè)改動(dòng)并同步刷新多平臺(tái)上得瀏覽器秒拔。

npm install gulp-babel gulp-plumber gulp-notify gulp-cached browser-sync run-sequence

/** *? babel */var gulp =require('gulp'),? babel =require('gulp-babel'),? bs =require('browser-sync').create(),? reload = bs.reload,? runSequence =require('run-sequence').use(gulp),? src ='src',//源目錄路徑? dist ='dist';//輸出路徑gulp.task('babel',function() {var onError =function(err) {? ? notify.onError({? ? ? title:"Gulp",? ? ? subtitle:"Failure!",? ? ? message:"Error: <%= error.message %>",? ? ? sound:"Beep"? ? })(err);? };return gulp.src(src +'/**/*.jsx')? ? .pipe(cached('react'))//把所有東西放入緩存中,每次只編譯修改過(guò)的文件? ? .pipe(plumber({//發(fā)生錯(cuò)誤時(shí)不會(huì)中斷 gulp 的流程飒硅,同時(shí)觸發(fā) notify 消息提示? ? ? errorHandler: onError? ? }))? ? .pipe(babel())? ? .pipe(gulp.dest(dist));});// Start the servergulp.task('bs',function() {var files;? files = [? ? src +'/**/*.+(html|php|js|css|png|jpg|svg|gif)'? ];? bs.init(files, {? server: {? ? baseDir: src,? }? });});gulp.task('server', ['babel','bs'],function() {? gulp.watch(src +'/**/*.jsx',function() {? ? runSequence('babel', reload);

});

})

在命令行中輸入 gulp server 運(yùn)行砂缩。

或者使用 sublime 自帶的 build 工具,選擇Tools -> Build System -> New Build System

輸入:

{? ? "shell_cmd":"gulp server --cwd $file_path"

}

并保存為 gulpBabel.sublime-build(名稱隨意狡相,保持.sublime-build后綴名)梯轻,存放到Packages - Users文件夾里面,在 sublime 中使用ctrl+shift+b(或Tools -> Build With ..)打開 build 面板尽棕,選擇剛剛輸入的名稱,在這里是gulpBabel運(yùn)行彬伦。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末滔悉,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子单绑,更是在濱河造成了極大的恐慌回官,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,858評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搂橙,死亡現(xiàn)場(chǎng)離奇詭異歉提,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)区转,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門苔巨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人废离,你說(shuō)我怎么就攤上這事侄泽。” “怎么了蜻韭?”我有些...
    開封第一講書人閱讀 165,282評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵悼尾,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我肖方,道長(zhǎng)闺魏,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,842評(píng)論 1 295
  • 正文 為了忘掉前任俯画,我火速辦了婚禮析桥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己烹骨,他們只是感情好翻伺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,857評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著沮焕,像睡著了一般吨岭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上峦树,一...
    開封第一講書人閱讀 51,679評(píng)論 1 305
  • 那天辣辫,我揣著相機(jī)與錄音,去河邊找鬼魁巩。 笑死急灭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的谷遂。 我是一名探鬼主播葬馋,決...
    沈念sama閱讀 40,406評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼肾扰!你這毒婦竟也來(lái)了畴嘶?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,311評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤集晚,失蹤者是張志新(化名)和其女友劉穎窗悯,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體偷拔,經(jīng)...
    沈念sama閱讀 45,767評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蒋院,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了莲绰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片欺旧。...
    茶點(diǎn)故事閱讀 40,090評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖钉蒲,靈堂內(nèi)的尸體忽然破棺而出切端,到底是詐尸還是另有隱情,我是刑警寧澤顷啼,帶...
    沈念sama閱讀 35,785評(píng)論 5 346
  • 正文 年R本政府宣布踏枣,位于F島的核電站,受9級(jí)特大地震影響钙蒙,放射性物質(zhì)發(fā)生泄漏茵瀑。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,420評(píng)論 3 331
  • 文/蒙蒙 一躬厌、第九天 我趴在偏房一處隱蔽的房頂上張望马昨。 院中可真熱鬧竞帽,春花似錦、人聲如沸鸿捧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)匙奴。三九已至堆巧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泼菌,已是汗流浹背谍肤。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哗伯,地道東北人荒揣。 一個(gè)月前我還...
    沈念sama閱讀 48,298評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像焊刹,于是被迫代替她去往敵國(guó)和親系任。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,033評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容