是否有一个崇高的文字的JSX格式化程序?

我使用Sublime Text作为文本编辑器。

有一个用于格式化JavaScript文件的js格式,但是我找不到一个用于JSX的文件。

你们如何处理格式化JSX?

更新4

检查漂亮 ,而不是可configuration为esformatter,但目前用于格式化一些大项目( 如React本身 )

更新3

检查崇高的jsfmt 。 如果将esformatter-jsx添加到configuration中,并在forlder中为sublime-jsfmt安装软件包。 您将能够直接从Sublime格式化JSX文件。 这是一个指导

更新2

从命令行你也可以使用esbeautifier 。 这是一个围绕esformatter的包装,接受格式列表的格式

# install the dependencies globally npm i -g esbeautifier # beautify the files under src/ and specs/ both .js and .jsx esbeautifier src/**/*.js* specs/**/*.js* 

更新

所以我最终做了一个esformatter的插件来启用JSX文件的格式化:

https://www.npmjs.com/package/esformatter-jsx

这里是一个关于requirebin的现场演示

从Sublime传递当前文件作为参数调用esformatter应该是可行的。 无论如何,从命令行使用它,你可以按照这些指示:

从命令行可以像这样使用它:

 # install the dependencies globally npm i -g esformatter esformatter-jsx # call it (this will print to stdout) esformatter --plugins=esformatter-jsx ./path/to/your/file # to actually modify the file esformatter --plugins=esformatter-jsx ./path/to/your/file > ./path/to/your/file # to specify a config file (where you can also specify the plugins) # check esformatter for more info about the configuration options esformatter -c ./path/to/.esformatter ./path/to/your/file > ./path/to/your/file 

====老答案如下===

所以,如果你正在寻找的只是让你的jsx文件被格式化,而允许jsx语法(基本上美化所有的javascript语法,忽略jsx标签,意味着离开它们),这就是我正在使用esformatter

 // needed for grunt.file.expand var grunt = require('grunt'); // use it with care, I haven't check if there // isn't any side effect from using proxyquire to // inject esprima-fb into the esformatter // but this type of dependency replacement // seems to be very fragile... if rocambole deps change // this will certainly break, same is true for esformatter // use it with care var proxyquire = require('proxyquire'); var rocambole = proxyquire('rocambole', { 'esprima': require('esprima-fb') }); var esformatter = proxyquire('esformatter', { rocambole: rocambole }); // path to your esformatter configuration var cfg = grunt.file.readJSON('./esformatter.json'); // expand the files from the glob var files = grunt.file.expand('./js/**/*.jsx'); // do the actual formatting files.forEach(function (fIn) { console.log('formatting', fIn); var output = esformatter.format(grunt.file.read(fIn), cfg); grunt.file.write(fIn, output); }); 

我实际上喜欢esformatter使用esprima-fb而不是esprima的rocambole版本,以避免使用proxyquire。

在HTML-CSS-JS Prettify插件中有一个设置,允许您忽略js / jsx文件中的xml语法。 这样就不会搞乱jsx代码。 设置为: "e4x": true在设置文件的“js”部分为"e4x": true

首选项>软件包设置> HTML \ CSS \ JS美化>设置美化首选项

如果你有自我结束的标签,这是行不通的。 以/>结尾的标签

要加上@Shoobah说的话:

在HTML-CSS-JS Prettify插件中有一个设置,允许您忽略js / jsx文件中的xml语法。 这样就不会搞乱jsx代码。 设置为:“e4x”:在设置文件的“js”部分为true

转到:首选项>程序包设置> HTML \ CSS \ JS美化>设置Prettify首选项

转到“js”部分:

将“jsx”添加到“allowed_file_extension”,然后将“ex4”更改为“true”

在互联网上总是告诉你设置“e4x”为真的答案,但有时候,我们必须设置“format_on_save_extensions”的选项,然后在数组中添加“jsx”

修改jsFormat.sublime设置

 { "e4x": true, "format_on_save": true, "format_on_save_extensions": ["js", "json", "jsx"] } 

您可以为Sublime 2和3安装JsPrettier包。这是一个相当新的JavaScript格式化程序(撰写本文时:2017年2月)。 它支持大多数最新的开发,如:ES2017,JSX和Flow。

快速开始

  1. 使用terminal在全局安装: $ npm install -g prettier
  2. 在Sublime中,进入Tools – > Command Palette … – > Package Control:Install Package,键入JsPrettier这个词,然后select它来完成安装。
  3. 使用编辑器中的上下文菜单格式化文件,或将其绑定到键盘快捷键: { "keys": ["super+b"], "command": "js_prettier" }

链接:

使用Sublime的包安装程序,安装Babel 。 然后:

  1. 打开一个.jsx文件。
  2. 从菜单中select查看,
  3. 然后语法 – >打开所有与当前的扩展为… – > Babel – > JavaScript(巴别)。

不是专门针对Sublime Text的,但是React JSX在JavaScript中是一个美化器。

http://prettydiff.com/?m=beautify声称支持JSX:; http : //prettydiff.com/guide/react_jsx.xhtml