Ich verwende Sublime Text als Texteditor.Gibt es einen JSX-Formatierer für erhabenen Text?
Es gibt ein JsFormat zum Formatieren von Javascript-Dateien, aber ich kann keinen für JSX finden.
Wie Sie mit JSX Formatierung umgehen?
Ich verwende Sublime Text als Texteditor.Gibt es einen JSX-Formatierer für erhabenen Text?
Es gibt ein JsFormat zum Formatieren von Javascript-Dateien, aber ich kann keinen für JSX finden.
Wie Sie mit JSX Formatierung umgehen?
aktualisieren 4
prüfen prettier, das nicht als esformatter konfigurierbar, aber zur Zeit verwendet, um einige große Projekte zu formatieren (like React itself)
aktualisieren 3
prüfen sublime jsfmt. Wenn Sie zur Konfiguration hinzufügen und das Paket im forlder for sublime-jsfmt installieren. Sie können JSX-Dateien direkt von Sublime aus formatieren. Here is a guide for that
Update 2
von der Befehlszeile Sie auch esbeautifier verwenden können. Es ist ein Wrapper um esformatter, die eine Liste von Klackse akzeptieren zu forma
# install the dependencies globally
npm i -g esbeautifier
# beautify the files under src/ and specs/ both .js and .jsx
esbeautifier src/**/*.js* specs/**/*.js*
aktualisieren
Also ich für esformatter tun ein Plugin beendet, um die Formatierung von JSX Dateien zu aktivieren:
https://www.npmjs.com/package/esformatter-jsx
Hier ist ein live demo on requirebin
Es sollte irgendwie machbar sein, esformatter von Sublime aufzurufen und die aktuelle Datei als Argument zu übergeben. Auf jeden Fall ist es von der Befehlszeile verwenden Sie diese Anweisungen befolgen können:
in der Befehlszeile kann wie folgt verwendet werden:
# 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
==== alte Antwort unten ===
Also, wenn, was Sie suchen gerade Ihre jsx Dateien machen formatiert werden, während man die jsx
Syntax (im Grunde alle die JavaScript-Syntax verschönern und jsx
Tags zu ignorieren, sie bedeutet, lassen wie es ist), das ist, was ich m tun mit 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);
});
Ich würde eigentlich gerne, dass esformatter eine Version von Rocambole verwenden, die esprima-fb anstelle von esprima verwenden, um proxyquire zu vermeiden.
Das funktionierte nur mit esformatter-jsx-ignore für mich, aber das ist gut genug. Vielen Dank! – Jasper
Ich benutze esformatter-jsx und es funktioniert wie ich es erwartet hatte. Allerdings musste ich auch "esformatter-jsx" zu "Optionen" hinzufügen: {"plugins": {"esformatter-jsx"}} in "Einstellungen> Paketeinstellungen> Sublime JSFMT> Einstellungen - Standard" in Sublime 3, um es zu machen funktioniert – Kuma
Dies ist eine großartige Antwort, ich habe dieses Tool für eine Weile verwendet, aber wir haben es mit es6/es7 mit babel und es funktioniert nicht mehr funktioniert. – Mintberry
Es gibt eine Einstellung im HTML-CSS-JS Prettify-Plugin, mit der Sie die XML-Syntax in der js/jsx-Datei ignorieren können. Auf diese Weise wird der jsx-Code nicht durcheinander gebracht. Die Einstellung ist: "e4x": true
im „js“ Abschnitt der Einstellungsdatei
Einstellungen> Paketeinstellungen> HTML \ CSS \ JS Prettify> Set Prettify Einstellungen
Dies funktioniert nicht gut, wenn Sie sich selbst schließenden Tags haben z.B. Tags enden in />
Das hat einen Trick gemacht! Vielen Dank! –
Dies funktioniert immer noch sehr gut mit den neuesten Versionen von Babel-Sublime und HTML-CSS-JS Prettify. Stellen Sie nur sicher, dass Sie "jsx" oder die von Ihnen verwendete Dateierweiterung zu "allowed_file_extensions" hinzufügen. – damd
Ist diese Antwort veraltet? Es gibt nicht '/>' in meinem Code, aber es funktioniert immer noch nicht –
Nicht speziell für Sublime Text, aber es gibt einen Beautifier in JavaScript für React JSX.
http://prettydiff.com/?m=beautify Ansprüche JSX zur Unterstützung bei: http://prettydiff.com/guide/react_jsx.xhtml
hinzuzufügen, was @Shoobah sagte:
Es gibt eine Einstellung in der HTML-CSS-JS Prettify-Plugin, das Sie zu ignorieren erlaubt XML-Syntax in der js/jsx-Datei. Auf diese Weise wird der jsx-Code nicht durcheinander gebracht. Die Einstellung ist: "e4x": true im "js" Abschnitt der Einstellungsdatei
Gehen Sie zu: Einstellungen> Paketeinstellungen> HTML \ CSS \ JS Prettify> Set Prettify Einstellungen
Go Abschnitt „js“:
hinzufügen „jsx“ zum „allowed_file_extension“, und ändern Sie dann „ex4“ auf „true“
die Antwort im Internet, die immer gesagt, Sie setzen ‚e4x‘ zu richtig, aber manchmal haben wir Option 'format_on_save_extensions' add 'jsx' in Array
ändern jsFormat.sublime-Einstellungen
{
"e4x": true,
"format_on_save": true,
"format_on_save_extensions": ["js", "json", "jsx"]
}
Ich tat wie von Ihnen gesagt, aber es hat nicht für mich funktioniert. :( –
Dieser arbeitete für mich als Charme – kachar
Wo ist _ "jsFormat slime-Einstellungen" _ gefunden? So dass ich '" format_on_save_extensions "ändern kann: [" js "," json "," jsx "]' am nächsten finde ich über Dateierweiterungen ist: '" js ": { " allowed_file_extensions ": [" js "," json ", ...]' – Chris22
Mit Sublime-Package Installer dann setzen, installieren Babel. Dann:
Sie können ein JsPrettier Paket für Sublime 2 & 3. Es sind installieren ein ziemlich neuen JavaScript-Formatierer (zum Zeitpunkt des Schreibens dieser: Feb-2017). Es unterstützt die meisten der neuesten Entwicklungen wie: ES2017, JSX und Flow.
Kurz
$ npm install -g prettier
{ "keys": ["super+b"], "command": "js_prettier" }
Links:
Dies ist bei weitem die beste Antwort! Schöner ist da Bombe! – majorBummer
Ja, tatsächlich , das hat auch für mich perfekt funktioniert, am wichtigsten ist der "globale" Teil. – Ionut
Ja, für die aussehen jsx textmate-Bundle, das mit so ziemlich jedem Editor verwendet werden kann. – FakeRainBrigand
es scheint wie eine Syntax hightlighter nur, ich bin auf der Suche nach dem Formatierer, der Ident und Art von Dingen tut – fin
Ich weiß nicht von einem. Die react Google-Gruppe wäre ein besserer Ort, um zu fragen. – FakeRainBrigand