Używam Sublime Text jako edytora tekstu.
Istnieje jsFormat do formatowania plików javascript, ale nie mogę go znaleźć dla JSX.
Jak radzicie sobie z formatowaniem JSX?
reactjs
sublimetext
react-jsx
płetwa
źródło
źródło
Odpowiedzi:
Zaktualizuj 4
Sprawdź ładniejsze , nie konfigurowalne jako esformatter, ale obecnie używane do formatowania niektórych dużych projektów ( takich jak sam React )
Zaktualizuj 3
Sprawdź Sublime jsfmt . Jeśli dodasz esformatter-jsx do config i zainstalujesz pakiet wewnątrz forlder dla sublime-jsfmt. Będziesz mógł formatować pliki JSX bezpośrednio z Sublime. Oto przewodnik po tym
Zaktualizuj 2
z linii poleceń możesz także użyć esbeautifier . Jest to opakowanie otaczające esformatter, które akceptuje listę globów do sformatowania
# install the dependencies globally npm i -g esbeautifier # beautify the files under src/ and specs/ both .js and .jsx esbeautifier src/**/*.js* specs/**/*.js*
Aktualizacja
Skończyło się na stworzeniu wtyczki do esformatter, która umożliwia formatowanie plików JSX:
https://www.npmjs.com/package/esformatter-jsx
Oto demo na żywo na requirebin
Powinno być w jakiś sposób wykonalne wywołanie esformatter z Sublime, przekazując bieżący plik jako argument. W każdym przypadku, aby użyć go z wiersza poleceń, postępuj zgodnie z następującymi instrukcjami:
Z wiersza poleceń można go użyć w następujący sposób:
# 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
==== stara odpowiedź poniżej ===
Więc jeśli szukasz tylko po to, aby sformatować pliki jsx, jednocześnie zezwalając na
jsx
składnię (w zasadzie upiększ całą składnię javascript i zignorujjsx
tagi, co oznacza pozostawienie ich bez zmian ), to właśnie robię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); });
Właściwie chciałbym, aby esformatter używał wersji rocambole, która używa esprima-fb zamiast esprima, aby uniknąć proxyquire.
źródło
We wtyczce HTML-CSS-JS Prettify istnieje ustawienie, które pozwala zignorować składnię XML w pliku js / jsx. W ten sposób nie psuje kodu jsx. Ustawienie to:
"e4x": true
w sekcji „js” pliku ustawieńPreferencje> Ustawienia pakietu> HTML \ CSS \ JS Prettify> Ustaw preferencje Prettify
Nie działa to dobrze, jeśli masz samozamykające się tagi, np. tagi kończące się na />
źródło
/>
w moim kodzie, ale nadal nie działaMożesz zainstalować pakiet JsPrettier dla Sublime 2 i 3. Jest to całkiem nowy program formatujący JavaScript (w chwili pisania tego: luty 2017). Obsługuje większość najnowszych osiągnięć, takich jak: ES2017, JSX i Flow.
Szybki start
$ npm install -g prettier
{ "keys": ["super+b"], "command": "js_prettier" }
Spinki do mankietów:
źródło
Aby dodać do tego, co powiedział @Shoobah:
Przejdź do sekcji „js”:
Dodaj „jsx” do „allowed_file_extension”, a następnie zmień „e4x” na „true”
źródło
odpowiedź w Internecie, która zawsze mówiła, że ustawisz „e4x” na true, ale czasami musimy ustawić opcję „format_on_save_extensions”, a następnie dodać „jsx” do tablicy
zmodyfikuj jsFormat.sublime-settings
{ "e4x": true, "format_on_save": true, "format_on_save_extensions": ["js", "json", "jsx"] }
źródło
"format_on_save_extensions": ["js", "json", "jsx"]
. Najbliższe rozszerzenia plików, które znalazłem, to:"js": { "allowed_file_extensions": ["js", "json",...]
Korzystając z Instalatora pakietów Sublime, zainstaluj Babel . Następnie:
źródło
Nie specjalnie dla Sublime Text, ale w JavaScript jest element upiększający dla React JSX.
http://prettydiff.com/?m=beautify twierdzi, że obsługuje JSX pod adresem : http://prettydiff.com/guide/react_jsx.xhtml
źródło