मैं एक पाठ संपादक के रूप में उदात्त पाठ का उपयोग कर रहा हूं।
जावास्क्रिप्ट फ़ाइलों को प्रारूपित करने के लिए एक jsFormat है, लेकिन मुझे JSX के लिए एक नहीं मिल रहा है।
आप लोग JSX को फ़ॉर्मेट करने से कैसे निपटते हैं?
मैं एक पाठ संपादक के रूप में उदात्त पाठ का उपयोग कर रहा हूं।
जावास्क्रिप्ट फ़ाइलों को प्रारूपित करने के लिए एक jsFormat है, लेकिन मुझे JSX के लिए एक नहीं मिल रहा है।
आप लोग JSX को फ़ॉर्मेट करने से कैसे निपटते हैं?
जवाबों:
अद्यतन ४
चेक खूबसूरत , कि esformatter के रूप में कॉन्फ़िगर करने योग्य नहीं है, लेकिन वर्तमान में कुछ बड़े परियोजनाओं फ़ॉर्मेट करने के लिए प्रयोग किया जाता है ( जैसे ही प्रतिक्रिया )
अपडेट ३
उदात्त jsfmt की जाँच करें । यदि आप कॉन्फ़िगर करने के लिए esformatter-jsx जोड़ते हैं और उपखंड-jsfmt के लिए फ़ॉरेस्ट के अंदर पैकेज स्थापित करते हैं। आप Sublime से सीधे JSX फ़ाइलों को प्रारूपित कर पाएंगे। यहाँ इसके लिए एक गाइड है
अपडेट २
कमांड लाइन से आप एसबाइटरिफायर का उपयोग भी कर सकते हैं । यह एक विकृत आवरण है जिसके चारों ओर एक आवरण है जो ग्लब्स की सूची को प्रारूपित करता है
# install the dependencies globally
npm i -g esbeautifier
# beautify the files under src/ and specs/ both .js and .jsx
esbeautifier src/**/*.js* specs/**/*.js*
अपडेट करें
इसलिए मैंने जेएसएक्स फाइलों के प्रारूपण को सक्षम करने के लिए एस्केफॉर्म के लिए एक प्लगइन करना समाप्त किया :
https://www.npmjs.com/package/esformatter-jsx
यहाँ पर एक लाइव डेमो आवश्यकता है
यह तर्क के रूप में वर्तमान फ़ाइल को पारित करने वाले सबलाइम से एस्केफॉर्म को कॉल करने के लिए किसी भी तरह संभव है । किसी भी स्थिति में इसे कमांड लाइन से उपयोग करने के लिए आप इन निर्देशों का पालन कर सकते हैं:
कमांड लाइन से इसे इस तरह इस्तेमाल किया जा सकता है:
# 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
टैग को अनदेखा करने की अनुमति देता है) बनाने के लिए अपनी 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);
});
मैं वास्तव में पसंद करूंगा कि एस्कॉर्पेरेटर rocambole के एक संस्करण का उपयोग करें जो कि एस्क्रीम के बजाय एस्प्रिमा-एफबी का उपयोग करता है, ताकि प्रॉक्सीवर से बचा जा सके।
HTML-CSS-JS Prettify plugin में एक सेटिंग है जो आपको js / jxx फ़ाइल में xml सिंटैक्स को अनदेखा करने की अनुमति देता है। इस तरह यह jsx कोड को गड़बड़ नहीं करता है। सेटिंग है: "e4x": true
सेटिंग्स फ़ाइल के "जेएस" अनुभाग में
प्राथमिकताएँ> पैकेज सेटिंग्स> HTML \ CSS \ JS Prettify> प्राथमिकताएँ निर्धारित करें सेट करें
यदि आप स्वयं समापन टैग जैसे हैं तो यह अच्छी तरह से काम नहीं करता है। /> में समाप्त होने वाले टैग
/>
मेरे कोड में नहीं है, लेकिन यह अभी भी काम नहीं करता है
आप उदा 2 और 3 के लिए एक JsPrettier पैकेज स्थापित कर सकते हैं। यह एक काफी नया जावास्क्रिप्ट फॉर्मैटर है (इसे लिखने के समय: फरवरी -2017)। यह सबसे नवीनतम विकास का समर्थन करता है जैसे: ES2017, JSX, और फ़्लो।
जल्दी शुरू
$ npm install -g prettier
{ "keys": ["super+b"], "command": "js_prettier" }
लिंक:
@Shoobah ने क्या कहा:
HTML-CSS-JS Prettify plugin में एक सेटिंग है जो आपको js / jxx फ़ाइल में xml सिंटैक्स को अनदेखा करने की अनुमति देता है। इस तरह यह jsx कोड को गड़बड़ नहीं करता है। सेटिंग है: "e4x": सेटिंग्स फ़ाइल के "js" अनुभाग में सच है
पर जाएं: प्राथमिकताएँ> पैकेज सेटिंग> HTML \ CSS \ JS Prettify> प्राथमिकताएँ निर्धारित करें सेट करें
"Js" अनुभाग पर जाएं:
"अनुमत_फाइल_स्टेंशन" में "jsx" जोड़ें, और फिर "e4x" को "सही" में बदलें
इंटरनेट में उत्तर जिसने आपको हमेशा 'e4x' सेट करने के लिए कहा था, लेकिन कभी-कभी, हमें '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",...]
उपठेका के पैकेज इंस्टॉलर का उपयोग करके, बैबेल को स्थापित करें । फिर:
विशेष रूप से उदात्त पाठ के लिए नहीं, लेकिन प्रतिक्रिया JSX के लिए जावास्क्रिप्ट में एक ब्यूटिफायर है।
http://prettydiff.com/?m=bifyify JSX पर समर्थन का दावा करें: http://prettydiff.com/guide/react_jsx.xhtml