Я использую Sublime Text в качестве текстового редактора.
Есть jsFormat для форматирования файлов javascript, но я не могу найти его для JSX.
Как вы, ребята, справляетесь с форматированием JSX?
Я использую Sublime Text в качестве текстового редактора.
Есть jsFormat для форматирования файлов javascript, но я не могу найти его для JSX.
Как вы, ребята, справляетесь с форматированием JSX?
Ответы:
Обновление 4
Отметьте красивее , не то, что настраивается как esformatter, но в настоящее время используется для форматирования некоторых больших проектов ( например, самого React )
Обновление 3
Проверьте возвышенный jsfmt . Если вы добавите esformatter-jsx в конфигурацию и установите пакет внутри форлдера для sublime-jsfmt. Вы сможете форматировать файлы JSX прямо из Sublime. Вот руководство для этого
Обновление 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
Должно быть как-то возможно вызвать esformatter из Sublime, передав текущий файл в качестве аргумента. В любом случае, чтобы использовать его из командной строки, вы можете следовать этим инструкциям:
Из командной строки его можно использовать так:
# 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 использовал версию rocambole, которая использует esprima-fb вместо esprima, чтобы избежать прокси-запроса.
В плагине HTML-CSS-JS Prettify есть настройка, которая позволяет игнорировать синтаксис xml в файле js / jsx. Таким образом, это не испортит код jsx. Настройка: "e4x": true
в разделе "js" файла настроек
Настройки> Настройки пакета> HTML \ CSS \ JS Prettify> Установить настройки Prettify
Это не работает, если у вас есть самозакрывающиеся теги, например. теги, оканчивающиеся на />
/>
Вы можете установить пакет JsPrettier для Sublime 2 и 3. Это довольно новый модуль форматирования JavaScript (на момент написания: февраль 2017 г.). Он поддерживает большинство последних разработок, таких как ES2017, JSX и Flow.
Быстрый старт
$ npm install -g prettier
{ "keys": ["super+b"], "command": "js_prettier" }
Ссылки:
Чтобы добавить к тому, что сказал @Shoobah:
В плагине HTML-CSS-JS Prettify есть настройка, которая позволяет игнорировать синтаксис xml в файле js / jsx. Таким образом, это не испортит код jsx. Значение: "e4x": true в разделе "js" файла настроек.
Перейдите в: Настройки> Настройки пакета> HTML \ CSS \ JS Prettify> Установить настройки Prettify.
Перейдите в раздел "js":
Добавьте «jsx» в «allowed_file_extension», а затем измените «e4x» на «true»
ответ в Интернете, который всегда говорил, что вы устанавливаете 'e4x' в значение true, но иногда мы должны установить опцию 'format_on_save_extensions', а затем добавить 'jsx' в массив
изменить jsFormat.sublime-settings
{
"e4x": true,
"format_on_save": true,
"format_on_save_extensions": ["js", "json", "jsx"]
}
"format_on_save_extensions": ["js", "json", "jsx"]
. Ближайшее, что я нашел о расширениях файлов, это:"js": { "allowed_file_extensions": ["js", "json",...]
Используя установщик пакетов Sublime, установите Babel . Затем:
Не специально для Sublime Text, но в JavaScript есть средство для украшения React JSX.
http://prettydiff.com/?m=beautify утверждает, что поддерживает JSX по адресу: http://prettydiff.com/guide/react_jsx.xhtml