sublime text3搭建react native

Sublime Text 3 搭建React.js開發環境

Sublime有很強的自定義功能,插件庫很龐大,針對新語言插件更新很快,配合使用可以快速搭建適配語言的開發環境。

1.?babel-sublime

支持ES6, React.js, jsx代碼高亮,對 JavaScript, jQuery 也有很好的擴展。關于 babel 的更多介紹可以看這里:為什么說Babel將推動JavaScript的發展

安裝

  • PC:Ctrl+shift+p

  • Mac:Cmd+shift+p

打開面板輸入babel安裝

配置

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

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

2.?sublimeLinter-jsxhint

JSX 代碼審查,實時提示語法錯誤, 幫助快速定位錯誤點.

安裝

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

  2. 安裝?node.js

  3. 安裝?jsxhint

npm install -g jsxhint

3. 修改?Emmet?兼容jsx 文件

emmet 作為前端開發必備插件之一非常方便快捷,通過修改默認的 sublime就可以在 jsx 文件中快速通過 emmet 編寫自定義組件。

安裝

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

使用方法

打開?preferences -> Key bindings - Users,把下面代碼復制到[]內部。

{
"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觸發 emmet;正則判斷用 a,div,span,p,button標簽默認tab 觸發;默認 class 修改為 className。

注:

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

  2. 以上規則來源于StackOverflow,正則小有修改

4.?JsFormat?格式化 js 代碼

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

安裝

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

使用

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

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

即可保存時自動格式化,并支持 jsx 類型文件.

5. 編譯 jsx

  • 使用babel-sublime
    帶有編譯 jsx 的命令 babel build。使用 babel 編譯 jsx 也由 React 項目官方引用。該命令依賴于 node 包?babel。babel 同時也支持 ES6的新語法經過編譯在瀏覽器中運用。

    npm install -g babel

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

  • 使用自動化構建工具(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 運行

    配合 BrowserSync 使用可以實時監測改動并同步刷新多平臺上得瀏覽器。

    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')) //把所有東西放入緩存中,每次只編譯修改過的文件
.pipe(plumber({ //發生錯誤時不會中斷 gulp 的流程,同時觸發 notify 消息提示
errorHandler: onError
}))
.pipe(babel())
.pipe(gulp.dest(dist));
});
// Start the server
gulp.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 運行。

或者使用 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運行。

轉載于:https://www.cnblogs.com/honeynm/p/9921060.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/278987.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/278987.shtml
英文地址,請注明出處:http://en.pswp.cn/news/278987.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

linux系統輸入指令,詳解linux系統輸入輸出管理和vim的常用功能

####系統中輸入輸出的管理####1.理解系統的輸入輸出重定向輸入重定向是指把文件導入到命令中&#xff0c;而輸出重定向則是把原本要輸出到屏幕的數據信息寫入到指定文件中。2.管理輸入輸出的符號##輸出重定向> ##重定向正確輸2> ##重定向錯誤輸出&> …

Deep Learning(深度學習)學習筆記整理(二)

本文整理了網上幾位大牛的博客&#xff0c;詳細地講解了CNN的基礎結構與核心思想&#xff0c;歡迎交流 [1]Deep learning簡介 [2]Deep Learning訓練過程 [3]Deep Learning模型之&#xff1a;CNN卷積神經網絡推導和實現 [4]Deep Learning模型之&#xff1a;CNN的反向求導及練習 …

百度新聞 谷歌新聞_每日新聞摘要:到目前為止,Google I / O提供的最佳信息

百度新聞 谷歌新聞Google’s yearly developer conference started yesterday, and the keynote was chock-full of announcements, demos, and some utterly mind-blowing tech. From Assistant to Android, here’s some of the best stuff to come out of I/O 2019 so far. …

u盤裝服務器linux軟件,服務器維護給您的U盤安裝linux

服務器維護給您的U盤安裝linux如何做好服務器維護?北京艾銻無限科技與你談談IT人員必須知道的服務器維護信息服務器維護小知識因為現在linux普及率實在不高&#xff0c;很多地方都沒有安裝&#xff0c;包括高校機房。為了自身方便和宣傳推廣linux&#xff0c;決定在U盤上安裝一…

幾個WMS的問題處理

采購訂單沒有生成上傳訂單號pkg_inpurchase_task.p_rk_sc_rkd_zc iv_yzid ----- ZDA iv_djbh ---- KPD00014712 銷售訂單下傳下去后直接轉歷史表 select * from INTERFACE_OUT_SALE_M t where djbh like %XSGYMA00220297%日志表查詢結果ORA-01400: 無法將 NULL 插入 ("WMS…

yyblog2.0 數據庫開發規范

一、基礎規范 &#xff08;1&#xff09;必須使用InnoDB存儲引擎 解讀&#xff1a;支持事務、行級鎖、并發性能更好、CPU及內存緩存頁優化使得資源利用率更高 &#xff08;2&#xff09;表字符集默認使用utf8&#xff0c;必要時候使用utf8mb4 解讀&#xff1a;1、通用&#xff…

word2016 語法檢查_如何改進Microsoft Word的語法檢查器

word2016 語法檢查Microsoft Word comes with a powerful grammar checker, but many of its advanced grammar detection features are disabled by default. Grammarly is popular, but you don’t need it to add grammar checking to Word. Word itself contains a free al…

linux服務器硬件監控,Linux服務器實時監控加載硬件信息

Linux服務器監控之實時監控加載硬件信息Linux負有盛名的特點之一是其非凡的穩定性。然而&#xff0c;如果您的硬件有缺陷或配置不正確&#xff0c;即使是世界上最穩定的操作系統也不會對您有什么幫助。計算機系統是由軟件系統硬件系統組成的&#xff0c;檢測硬件狀態對于保障整…

Using Python with Oracle

2019獨角獸企業重金招聘Python工程師標準>>> Using Python with Oracle This page discusses using Python with Oracle. The page is based on the cx_oracle Python extension module. It was developed on a VM running Oracle Enterprise Linux 6U4 runnng Orac…

小米oj 反向位整數(簡單位運算)

反向位整數 序號&#xff1a;#30難度&#xff1a;一般時間限制&#xff1a;1000ms內存限制&#xff1a;10M 描述 輸入32位無符號整數&#xff0c;輸出它的反向位。 例&#xff0c;輸入4626149&#xff08;以二進制表示為00000000010001101001011011100101&#xff09;&#xff…

如何在Microsoft Word中插入簽名

Adding your signature to a Microsoft Word document is the ultimate way to personalize it as your own, especially for documents like letters or contracts. If you want to add a signature to a Word document, here’s how. 將簽名添加到Microsoft Word文檔是將其個…

linux 內核fpic,linux編譯動態庫 fPIC作用

標簽&#xff1a;在生成動態庫時&#xff0c;常常習慣性的加上fPIC選項&#xff0c;fPIC有什么作用和意義&#xff0c;加不加有什么區別&#xff0c;這里做下小結&#xff1a;fPIC的全稱是 Position Independent Code&#xff0c; 用于生成位置無關代碼。什么是位置無關代碼&am…

jdk 1結尾和2結尾_“與巢一起工作”的結尾對您意味著什么

jdk 1結尾和2結尾korisbo/Shutterstock科里斯博/ ShutterstockGoogle announced the end of “Works With Nest” at Google I/O 2019. Many companies, from IFTTT to Philips Hue, use Works With Nest to automate your smarthome. Those automations will break soon. Goog…

spring-cloud:利用eureka實現服務提供與調用示例

1.運行環境 開發工具&#xff1a;intellij idea JDK版本&#xff1a;1.8 項目管理工具&#xff1a;Maven 4.0.0 2.GITHUB地址 https://github.com/nbfujx/springCloud-learn-demo/tree/master/spring-cloud-eureka-producer-consumer

linux 桌面顯示視頻播放器,Ubuntu 13.10開啟媒體播放器VLC桌面通知的步驟

VLC是一款多功能的媒體播放器&#xff0c;支持眾多音頻及視頻格式&#xff0c;能夠適用于Ubuntu等系統&#xff0c;而VLC播放器有桌面通知功能&#xff0c;需要手動開啟&#xff0c;下面小編就以Ubuntu 13.10為例&#xff0c;給大家詳細介紹下Ubuntu 13.10開啟VLC桌面通知的步驟…

獨家 | 螞蟻金服TRaaS技術風險防控平臺解密

小螞蟻說&#xff1a; 在金融行業&#xff0c;風險防控能力的重要性不言而喻。而螞蟻金服可實現高達99.999%的異地多活容災&#xff0c;千億級資金秒級實時核對“賬、證、實”等能力也讓業界有目共睹。 今年位于杭州的螞蟻金服ATEC科技大會上&#xff0c;螞蟻金服正式推出技術風…

谷歌表格_如何使用宏自動執行Google表格

谷歌表格Google Sheets lets you automate repetitive tasks with macros, and you can then bind them to keyboard shortcuts to execute them quickly. They work using Google Apps Script to capture your actions for later use. Google表格可以讓您使用宏自動執行重復性…

阿里云彈性高性能計算E-HPC強勢來襲,全新打造一站式云超算

為什么80%的碼農都做不了架構師&#xff1f;>>> 摘要&#xff1a; 如今&#xff0c;高性能計算已在不知不覺中滲透到人類生活的方方面面。從材料科學到石油勘探、金融市場、應急管理、醫學和互聯網等領域&#xff0c;高性能計算無一不大顯身手&#xff0c;幫助快速…

linux導出硬件信息,Linux 上生成硬件信息與配置報告: Sysreport

當需要 Linux 主機詳細完整的描述給另一個人的時候&#xff0c;這個工具非常適合。用 root 用戶之行&#xff0c;但要注意最好不要抓取 currently installed packages 信息&#xff0c;這一步非常慢。(用 -norpm 參數)存儲廠商 EMC 也有個 EMCgrab 工具&#xff0c;工作原理類似…

深度優先搜索(DFS)----------------Tju_Oj_3517The longest athletic track

這個題主要考察對樹的操作&#xff0c;主要思想是DFS或者BFS&#xff0c;其次是找樹的直徑方法&#xff08;既要運用兩次BFS/DFS&#xff09;&#xff0c;最后作為小白&#xff0c;還練習了vector的操作。 DFS框架偽碼: bool DSF(Node oneTreePoint ){ //傳入的結點和其他有效…