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.mzph.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 ){ //传入的结点和其他有效…