পরাশক্তি পাঠের জন্য কি জেএসএক্স বিন্যাস আছে?


91

আমি টেক্সট এডিটর হিসাবে সাব্লাইম টেক্সট ব্যবহার করছি।

জাভাস্ক্রিপ্ট ফাইল ফর্ম্যাট করার জন্য একটি জেএসফর্ম্যাট আছে তবে আমি জেএসএক্সের জন্য একটিও পাই না।

আপনি ছেলেরা কীভাবে জেএসএক্স ফর্ম্যাটিং করবেন?


হ্যাঁ, jsx টেক্সটমেট বান্ডিলটি সন্ধান করুন যা কোনও কোনও সম্পাদকের সাথে ব্যবহার করা যেতে পারে।
ব্রিগেন্ড

এটা hightlighter শুধুমাত্র একটি বাক্য গঠন মত মনে হয়, আমি ফরম্যাটার যা ident এবং সাজানোর জিনিস আছে খুঁজছি
ডানা

4
আমি একজনের কথা জানি না। প্রতিক্রিয়া জানাতে গুগল গ্রুপটি আরও ভাল জায়গা হবে।
ব্রিগেড

ভাল সমাধানও খুঁজে পাচ্ছেন না। বর্তমানে এসক্রিমা-এফবি দিয়ে উত্সটি বিশ্লেষণ করা সম্ভব, এবং উত্পন্ন বিন্যাসে আউটপুটটিতে এসকোডিজেন-জেএসএক্স ব্যবহার করা সম্ভব। ফর্ম্যাটিং বিকল্পগুলি সীমিত, এবং আপনি সাদা রেখাগুলি হারাবেন ... প্লাস এসকোডেন-জেএসএক্স ইস্যু ট্র্যাকিং ছাড়াই একটি কাঁটাচামচ .. এটি সক্রিয়ভাবে রক্ষণাবেক্ষণ করা হবে কিনা তা নিশ্চিত নয়। আমি ভাবছি কিভাবে fb তাদের jsx কোড বেসের সাথে ডিল করে।
ব্যবহারকারী 1600124

এসম্প্রেটারের বিটা ভার্চনে জেএসএক্সকে ফর্ম্যাট করার কিছুটা দক্ষতা আছে বলে মনে হচ্ছে এটি এসক্রিমা-এফবি ব্যবহার করছে, তবে এখনও উত্পাদন প্রস্তুত নয়
ফিন

উত্তর:


60

আপডেট 4

পরীক্ষা করে দেখুন , prettier , যে esformatter যেমন কনফিগার না, কিন্তু বর্তমানে কিছু বড় প্রকল্প ফরম্যাট করতে ব্যবহৃত ( মত নিজেই প্রতিক্রিয়া )

আপডেট 3

মহাসড়ক jsfmt পরীক্ষা করুন । যদি আপনি কনফিগারেশনে esformatter-jsx যোগ করেন এবং সাবালাইম-জেএসএফএমটি জন্য ফোল্ডারের ভিতরে প্যাকেজটি ইনস্টল করেন। আপনি সরাসরি সাব্লাইম থেকে জেএসএক্স ফাইলগুলি ফর্ম্যাট করতে সক্ষম হবেন। এখানে তার জন্য একটি গাইড আছে

আপডেট 2

কমান্ড লাইন থেকে আপনি এসিবেটিফায়ার ব্যবহার করতে পারেন । এটি 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*

হালনাগাদ

সুতরাং আমি জেএসএক্স ফাইলগুলির বিন্যাস সক্ষম করার জন্য এসফর্মেটরটির জন্য একটি প্লাগইন শেষ করেছি :

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ট্যাগগুলি উপেক্ষা করুন , যার অর্থ এগুলি রেখে দিন), আমি এটি ব্যবহার করে যা করছি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);
});

প্রকৃতপক্ষে প্রক্সিকিউর এড়ানোর জন্য এসম্প্রেটারটি রোকাম্বোলের এমন একটি সংস্করণ ব্যবহার করুন যা এসপ্রিমার পরিবর্তে এসপ্রিমা-এফবি ব্যবহার করে।


4
এটি কেবল আমার জন্য এসফর্মেটর-জেএসএক্স-উপেক্ষা করে কাজ করেছে, তবে এটি যথেষ্ট ভাল। ধন্যবাদ!
জ্যাস্পার

আমি এসফর্মেটর-জেএসএক্স ব্যবহার করছি এবং এটি আমার প্রত্যাশা অনুযায়ী কাজ করে। যাইহোক, সাবালাইম 3 এ তৈরি করতে আমাকে "বিকল্পগুলি": plug "প্লাগইনগুলি": es "এসফর্মেটর-জেএসএক্স"} to "এসফর্মেটর-জেএসএক্স" যোগ করতে হয়েছিল it কাজ
কুমা

এটি একটি দুর্দান্ত উত্তর, আমার কাছে এই মুহুর্তের জন্য ব্যবহৃত সরঞ্জামটি রয়েছে তবে আমরা বাবেলের সাথে এস 6 / এস 7 ব্যবহার করে চলেছি এবং এটি আর কাজ করে না।

4
আপনার মহিমান্বিত কনসোল পরীক্ষা, ম্যাক মধ্যে কনসোল Ctrl + `আপনি esformatter-jsx রেপো বা ত্রুটি আপনি কনসোলে দেখতে পান সঙ্গে JSFMT রেপো তে একটি টিকেট খুলতে পারে খুলতে
রায় riojas

4
সুন্দর আমার জন্য কাজ করে। sublime প্লাগইন এখানে github.com/jonlabelle/SublimeJsPrettier এবং এটিতে এসিলেন্ট সমর্থন github.com / ব্যাখ্যা / ব্যাখ্যা ব্যাখ্যা # এস্লিন্টও রয়েছে । এই প্রশ্নটি অবশেষে প্রায় 3 বছর পরে গৃহীত হয়েছে খুশি।
ডানা

57

এইচটিএমএল-সিএসএস-জেএস প্রিটিফাই প্লাগইনে একটি সেটিং রয়েছে যা আপনাকে js / jsx ফাইলে xML সিনট্যাক্স উপেক্ষা করতে দেয় ignore এইভাবে এটি জেএসএক্স কোডটি বিশৃঙ্খলা করে না। সেটিংসটি হ'ল: "e4x": trueসেটিংস ফাইলের "জেএস" বিভাগে

পছন্দসমূহ> প্যাকেজ সেটিংস> এইচটিএমএল \ সিএসএস \ জেএস প্রিটিফাই> প্রিটিফাই পছন্দগুলি সেট করুন

যদি আপনার নিজের ক্লোজিং ট্যাগ থাকে তবে এটি ভাল কাজ করে না। ট্যাগগুলি শেষ হয় />


4
এটি এখনও ব্যাবেল-পরাশক্তি এবং এইচটিএমএল-সিএসএস-জেএস প্রিটিফাইয়ের সর্বশেষ সংস্করণগুলির সাথে সত্যই ভাল কাজ করে। কেবলমাত্র নিশ্চিত করুন যে আপনি "jsx" যুক্ত করেছেন বা যে কোনও ফাইল এক্সটেনশান আপনি "অনুমোদিত_ফाइल_ এক্সটেনশনগুলি" ব্যবহার করেন।
অভিশাপ

এই উত্তর কি পুরানো? সেখানে নেই />আমার কোডে, কিন্তু এটি এখনও কাজ করে না
অ্যান্ডি ডারউইন

4
পরাশক্তি জন্য prettier (ওরফে jsprettier) এখন পর্যন্ত সেরা! : নীচের উত্তর দেখার stackoverflow.com/a/42169688/2178112
majorBummer

20

আপনি সাব্লাইম 2 এবং 3 এর জন্য একটি জেসপ্রিটিয়ার প্যাকেজ ইনস্টল করতে পারেন এটি মোটামুটি নতুন জাভাস্ক্রিপ্ট ফর্ম্যাটর (এটি লেখার সময়: ফেব্রুয়ারি -2017)। এটি সর্বশেষতম অগ্রগতি যেমন: ES2017, JSX এবং প্রবাহকে সমর্থন করে।

দ্রুত শুরু

  1. টার্মিনাল ব্যবহার করে বিশ্বব্যাপী প্রিটিয়ার ইনস্টল করুন: $ npm install -g prettier
  2. সাব্লাইমে সরঞ্জামগুলিতে যান -> কমান্ড প্যালেট ... -> প্যাকেজ নিয়ন্ত্রণ: প্যাকেজ ইনস্টল করুন, JsPrettier শব্দটি টাইপ করুন, তারপরে ইনস্টলেশনটি সম্পন্ন করতে এটি নির্বাচন করুন।
  3. সম্পাদকের অভ্যন্তরে প্রসঙ্গ মেনু ব্যবহার করে আপনার ফাইল ফর্ম্যাট করুন বা এটি একটি কীবোর্ড শর্টকাটে আবদ্ধ করুন: { "keys": ["super+b"], "command": "js_prettier" }

লিঙ্কগুলি:


4
এটি এখন পর্যন্ত সেরা উত্তর! প্রিটিয়ার হ'ল দা বোমা!
মেজর বামমার

4
হ্যাঁ, সত্যই, এটি আমার জন্যও নিখুঁত কাজ করেছে worked সবচেয়ে গুরুত্বপূর্ণ বিষয়টি লক্ষ্য করার জন্য হ'ল "বিশ্বব্যাপী" অংশ।
আয়নুত নেখুলা

19

@ শুবা যা বলেছিল তাতে যুক্ত করার জন্য:

এইচটিএমএল-সিএসএস-জেএস প্রিটিফাই প্লাগইনে একটি সেটিং রয়েছে যা আপনাকে js / jsx ফাইলে xML সিনট্যাক্স উপেক্ষা করতে দেয় ignore এইভাবে এটি জেএসএক্স কোডটি বিশৃঙ্খলা করে না। সেটিংসটি হ'ল: "e4x": সেটিংস ফাইলের "js" বিভাগে সত্য

এখানে যান: পছন্দসমূহ> প্যাকেজ সেটিংস> এইচটিএমএল \ সিএসএস \ জেএস প্রিটিফাই> প্রিটিফাই পছন্দগুলি সেট করুন

"জেএস" বিভাগে যান:

"Jsx" কে "অনুমোদিত_ফाइल_ এক্সটেনশন" এ যুক্ত করুন এবং তারপরে "e4x" কে "সত্য" তে পরিবর্তন করুন


16

ইন্টারনেটে যে উত্তরটি আপনাকে সর্বদা সত্য বলে 'e4x' সেট করতে বলেছিল, কিন্তু কখনও কখনও, আমাদেরকে 'format_on_save_exferences' বিকল্পটি সেট করতে হবে তারপরে অ্যারেতে "jsx" যুক্ত করতে হবে

jsFormat.sublime- সেটিংস পরিবর্তন করুন

{
  "e4x": true,
  "format_on_save": true,
  "format_on_save_extensions": ["js", "json", "jsx"]
}

আমি আপনাকে বলেছি হিসাবে করেছি, কিন্তু এটি আমার কাজ করে না। :(
যশ ভিকারিয়া

"JsFormat.sublime- সেটিংস" কোথায় পাওয়া যায়? যাতে আমি পরিবর্তন করতে পারি "format_on_save_extensions": ["js", "json", "jsx"]। ফাইল এক্সটেনশানগুলির সম্পর্কে আমি সর্বাধিক "js": { "allowed_file_extensions": ["js", "json",...]
নিকটতমটি

আপনি এটি এখানে খুঁজে পেতে পারেন: পছন্দসমূহ> প্যাকেজ সেটিংস> jsFormat> সেটিংস - ব্যবহারকারী। যদিও আমার পক্ষে কাজ করেনি, তবুও জেএসএক্সকে অদ্ভুতভাবে প্রবেশ করেছে :(
নিক্লাস

একটি সমাধান খুঁজছেন এবং এটি আমার সমস্যার সমাধান করেছে, ধন্যবাদ!
আল-মামারি তারেক

4

সাব্লাইমের প্যাকেজ ইনস্টলার ব্যবহার করে বাবেল ইনস্টল করুন । তারপরে:

  1. একটি .jsx ফাইল খুলুন।
  2. মেনু থেকে দেখুন নির্বাচন করুন,
  3. তারপরে সিনট্যাক্স -> বর্তমান এক্সটেনশন সহ সমস্তগুলি খুলুন ... -> ব্যাবেল -> জাভাস্ক্রিপ্ট (ব্যাবেল)।

এখানে একটি জেএসএক্স ল্যাঙ্গুয়েজ প্যাকেজও রয়েছে যা ব্যবহার করা যায়
ট্যাবসনটস্পেসগুলি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.