Я використовую 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 використовував версію рокамболи, яка використовує esprima-fb замість esprima, щоб уникнути proxyquire.
У плагіні 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" до "дозволеного_файлу_розширення", а потім змініть "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