সেরা জাভাস্ক্রিপ্ট সংক্ষেপক [বন্ধ]


171

সেরা জাভাস্ক্রিপ্ট সংক্ষেপক উপলব্ধ কি? আমি একটি সরঞ্জাম খুঁজছি যা:

  • ব্যবহার করা সহজ
  • একটি উচ্চ সংকোচনের হার আছে
  • নির্ভরযোগ্য শেষ ফলাফল উত্পাদন (কোড জড়ান না)

14
২০১১ সালের পরিস্থিতি কেউ জানে?
ড্যান

4
এটি এখন ২০১২, এবং আমি মনে করি ইউগ্লিফাইজেএস এবং ক্লোজার বিজয়ী, আমি ইউগ্লিফাইজেএস ব্যবহার করি এবং এটি সাধারণত প্যান্টগুলিকে অন্য সব কিছু থেকে মারধর করে।
mkoistinen

আমি আমার jQuery মোবাইল মাল্টি-পেজ অ্যাপ্লিকেশনটির জন্য htmlcompressor.com/compressor.html ব্যবহার করি। এটি <script> ট্যাগ সহ একটি এইচটিএমএল ফাইল নেয় এবং এইচটিএমএল, জাভাস্ক্রিপ্ট, এবং সিএসএস সংক্ষেপ করে। একটি যাদুমন্ত্র মত কাজ করে.
অ্যান্ডার্স

এটি 2017 - এখন সর্বশেষটি কী?
অভিনব সিংগি

এটি 2020 a একটি ডিফল্ট "নিরাপদ" কনফিগারেশন সহ, উগলিফাইজেএস প্রান্তিকভাবে জয়ী কারণ এটি আরও "নিরাপদ"। উন্নত শক্তি-ব্যবহারের জন্য, ক্লোজার সংকলক নিজেই UglifJS এর ​​পাছা হস্তান্তর করে। ADVANCDED_OPTIMIZATIONS সহ ক্লোজার সংকলক সমস্ত ধরণের কৌশল করতে পারে যা আপনাকে একই সাথে আপনার ওয়ার্কফ্লো এবং আপনার কোডটিকে অনুকূল করতে সহায়তা করে। ক্লোজার কম্পাইলারের দুর্দান্ততার উদাহরণগুলির জন্য স্ট্যাকওভারফ্লো.com/a/50355530/5601591 দেখুন (অস্বীকৃতি: আমি অন্য কোথাও একটি উপযুক্ত ব্লগ পোস্ট খুঁজে পাইনি, সুতরাং আমার লেখা পোস্টে আপনাকে রেফার করতে হয়েছিল)।
জ্যাক গিফিন

উত্তর:


149

আমি সম্প্রতি উগলিফাইজেএস প্রকাশ করেছি , একটি জাভাস্ক্রিপ্ট সংক্ষেপক যা জাভাস্ক্রিপ্টে লিখিত আছে (নোডজেএস নোড.জেএস প্ল্যাটফর্মে চলে, তবে এটি কোনও জাভাস্ক্রিপ্ট ইঞ্জিনে চালানোর জন্য সহজেই পরিবর্তন করা যেতে পারে, কারণ এটির কোনও Node.jsঅভ্যন্তরের প্রয়োজন নেই )। এটি YUI কমপ্রেসর এবং গুগল ক্লোজার উভয়ের চেয়ে অনেক দ্রুত , এটি যে স্ক্রিপ্টটিতে আমি পরীক্ষা করেছি সেগুলিতে এটি YUI এর চেয়ে আরও ভাল সংকোচনের সাথে জড়িত এবং এটি ক্লোজারের চেয়েও নিরাপদ ("ইওল" বা "উইথ" কে মোকাবেলা করতে জানে)।

হোয়াইটস্পেস অপসারণ ব্যতীত, ইউগ্লিফাইজেএস নিম্নলিখিতগুলিও করে:

  • স্থানীয় পরিবর্তনশীল নাম পরিবর্তন করে (সাধারণত একক অক্ষরে)
  • পরপর ভার ঘোষণার সাথে যোগ দেয়
  • কোনও অপ্রয়োজনীয় বন্ধনী, প্যারেনস এবং সেমিকোলন সন্নিবেশ করা থেকে বিরত থাকে
  • আইএফগুলি অনুকূল করে (যখন "এটি অন্য প্রয়োজন" সরিয়ে দেয় যখন এটি প্রয়োজন হয় না তা সনাক্ত করে, যদি আইএফসকে &&, || বা? /: অপারেটরগুলিতে রূপান্তর করে) ইত্যাদি।
  • যেখানে সম্ভব সেখানে রূপান্তরিত foo["bar"]হয়foo.bar
  • অবজেক্ট ল্যাটারালগুলিতে কীগুলি থেকে উদ্ধৃতিগুলি সরিয়ে ফেলুন, যেখানে সম্ভব
  • এটি যখন ছোট কোডের দিকে নিয়ে যায় তখন সরল অভিব্যক্তিগুলির সমাধান করে (1 + 3 * 4 ==> 13)

পিএস: ওহ, এটি "সুন্দরী "ও করতে পারে। ;-)


17
আমরা একটি এন্টারপ্রাইজ-শ্রেণির অ্যাপ্লিকেশনটিতে uglify ব্যবহার করি। এটি একটি ভাল কাজ করছে।
গাইর্জ্যাব্রাহাম

আপনি নোডে জেসমিনের সাথে তুলনা করতে পারবেন?
গ্রিংগো সুভেভ

সম্প্রতি উগলিফাই এপিআই কলগুলি বাদ দিয়েছে
গাদেলকারিম

@ মিশু আরে, আমি আপনার উগ্লিফাই জেএস 2 পছন্দ করি। আমার নেটওয়ার্ক আজকাল ঠিকঠাক কাজ করছে না ... আমি এটি উইন্ডোতে ব্যবহার করতে চাই। কিছু সমাধান? : ও)
হাইড্রোপার

@ মিশু আমি গিট লিঙ্কটি দেখিয়েছি তবে কীভাবে এটি ব্যবহার করতে হবে সে সম্পর্কে ধারণাটি পাই না
শচীন সরোলা

124

কয়েক বছর পরে এই প্রশ্নটি পুনর্বিবেচনা করা, ইউগ্লিফাইজেএস , এখনকার সেরা বিকল্প বলে মনে হচ্ছে।

নীচে উল্লিখিত হিসাবে, এটি নোডজেএস প্ল্যাটফর্মে চলে, তবে যে কোনও জাভাস্ক্রিপ্ট ইঞ্জিনে চালানোর জন্য সহজেই পরিবর্তন করা যেতে পারে।

--- নীচে পুরানো উত্তর ---

গুগল ক্লোজার কমপ্লেয়ারটি প্রকাশ করেছে যা মনে হয় এখানে এবং এখানে যতদূর দেখা গেছে সবচেয়ে ছোট ফাইল তৈরি করছে rating

এর আগে বিভিন্ন বিকল্প নিম্নলিখিত ছিল

মূলত প্যাকার প্রাথমিক কম্প্রেশন এ ভাল পেশা আছে, কিন্তু আপনি যদি টেলিগ্রাম (যা আপনি কাজ করা উচিত) এ পাঠানোর আগে ফাইল gzip করতে যাচ্ছি Yui কম্প্রেসার ক্ষুদ্রতম চূড়ান্ত আকার পায়।

পরীক্ষাগুলি jQuery কোড বিটিডব্লিউয়ে করা হয়েছিল।

  • আসল jQuery লাইব্রেরি 62,885 বাইট, gzip পরে 19,758 বাইট
  • জিজিওয়ারি জিএসপির পরে জেএসমিন 36,391 বাইট, 11,541 বাইটের সাহায্যে সংযুক্ত করা হয়েছে
  • জিকুয়ারি gzip এর পরে প্যাকার 21,557 বাইট, 11,119 বাইট দিয়ে মিনিফাইড করা হয়েছে
  • জিউকিরি YUI কমপ্রেসার 31,822 বাইট, gzip পরে 10,818 বাইট দিয়ে minified

@ ড্যানিয়েল জেমস কমপ্রেসরেটারে উল্লেখ করেছেন যা প্যাকারকে সেরা সংকোচনে চার্টের শীর্ষস্থানীয় দেখায়, তাই আমার অনুমান ymmv


প্যাকারের কাছে 'বেস 62 এনকোড' বন্ধ করার বিকল্প রয়েছে - এবং jQuery এর জন্য এটি জিপির পরে yui এর চেয়ে কম সংকোচিত করে। এর কারণ এটি যে jquery 'eval' এবং 'with' ব্যবহার করে যা 'নিরাপদ' সংকোচকারীদের নির্দিষ্ট সংকোচনের হাত থেকে বাধা দেয় তবে প্যাকার সেগুলি উপেক্ষা করে। সাধারণভাবে নিরাপদ নয় তবে প্যাকারটির জন্য jQuery পরীক্ষা করা হয়।
ড্যানিয়েল জেমস

এছাড়াও, যদি আপনি আমাকে বিশ্বাস না করেন তবে compressorrater.thruhere.net ব্যবহার করে দেখুন
ড্যানিয়েল জেমস

9
প্যাকার - ডিকম্প্রেশন সময় খারাপ দিক ভুলবেন না।
নসরেডনা

1
নজর রাখুন, গুগল ক্লোজারটি মাঝে মধ্যে সবচেয়ে খারাপ সংকোচকারী হতে পারে (আউটপুট মূলের চেয়েও বড়) - এটি স্ট্রিংগুলিতে অ-এস্কি অক্ষরগুলিকে \uxxxxডিফল্টরূপে আক্ষরিক রূপান্তরিত করে .. উদাহরণস্বরূপ ব্যবহার করুন --charset UTF-8(আপনি যদি নিশ্চিত হন যে আপনি ব্রাউজারটিকে এটি সম্পর্কে কিছুটা জানান)
মাইখাল

ক্লোজারকম্পেলার আউটপুট আমার পক্ষে কাজ করে না। jscompress.com কাজ করে
codenamezero

43

ওয়াইইউআই কমপ্রেসারে যাওয়ার উপায়। এটির একটি দুর্দান্ত সংকোচনের হার রয়েছে, এটি বেশ ভাল পরীক্ষিত এবং অনেকগুলি শীর্ষ সাইটের মধ্যে ব্যবহার করা হচ্ছে এবং ভাল, ব্যক্তিগতভাবে আমার দ্বারা প্রস্তাবিত।

আমি এটি একক জাভাস্ক্রিপ্ট ত্রুটি বা হিচাপ ছাড়াই আমার প্রকল্পগুলির জন্য ব্যবহার করেছি। এবং এটি চমৎকার ডকুমেন্টেশন আছে।

আমি এর সিএসএস সংক্ষেপণ ক্ষমতাটি কখনও ব্যবহার করি নি, তবে সেগুলিও বিদ্যমান। সিএসএস সংক্ষেপণ ঠিক পাশাপাশি কাজ করে।

দ্রষ্টব্য: যদিও ডিন এডওয়ার্ডস / প্যাকার / ওয়াইউআই কমপ্রেসরের চেয়ে আরও ভাল সংকোচনের হার অর্জন করেছেন, এটি ব্যবহার করার সময় আমি কয়েকটি জাভাস্ক্রিপ্ট ত্রুটির মধ্যে পড়েছিলাম।


5
প্যাকার ফাইল আকারের দিক থেকে ভাল দেখায় তবে দেখা যায় যে টিপগুলির মাধ্যমে একটি ছোট ফাইল স্থানান্তরিত করার সময়টি সাধারণভাবে আনপ্যাক করার সময় ব্যয় করে। আমি দেখেছি বেশিরভাগ প্রকৃত ব্রাউজারের মানদণ্ডগুলি ব্রাউজারে মৃত্যুদন্ড কার্যকর করার সময় নিখুঁতভাবে জিজিপ সহ পরিবেশন করা কাঁচা সঙ্কুচিত ফাইলগুলির চেয়ে ধীর।
কর্নেল স্পঞ্জস


আপনি জাভা চালানো নিয়ে ডিল করতে না চান সে ক্ষেত্রে এখানে কমপ্রেসারের
ব্রায়ান কিংবদন্তি

প্যাকার ব্যবহার করে সংক্ষিপ্ত স্ক্রিপ্টগুলি প্যাকগুলি প্যাক করা উচিত নয় যদি না আপনি বেস 62 এনকোড বিকল্পটি পরীক্ষা করেন (যা আপনি একজন সাধারণ ব্যক্তির গিজিপ হওয়ার কারণে করা উচিত নয় - আমি নিশ্চিত যে বেশিরভাগ আধুনিক সার্ভার জিজিপ সমর্থন করে)। কোনও বেইস 62 এনকোডযুক্ত ফাইলটি জিপিংয়ের কোনও অর্থ নেই যেহেতু কোনও অপ্রয়োজনীয় শোষণের বাকি নেই। প্যাকারের নতুন সংস্করণ (চূড়ান্ত সংস্করণ) ত্রুটিগুলি প্রবর্তন করে না, একটি আনপ্যাকিং ওভারহেড নেই (যতক্ষণ না আপনি 62 এনকোড বেস করেন না), এবং এখনও সর্বাধিক সংক্ষেপণ অর্জন করে। এছাড়াও এখন প্যাকারের একটি কমান্ড লাইন সংস্করণ রয়েছে। শুধু npm ব্যবহার নিম্নরূপ এটি ইনস্টল করুন: npm install packer। (= ডি
আদিতে এম শাহ

8

আমি দোজো প্রকল্প থেকে সঙ্কোচ-সাফ ব্যবহার করি - এটি ব্যতিক্রমী কারণ এটি কোডটিতে চিহ্নগুলি সন্ধান করতে এবং তাদের ক্ষেত্র বোঝার জন্য কোনও জাভাস্ক্রিপ্ট ইন্টারপ্রেটার ( রাইনো ) ব্যবহার করে যা এ কোডটি যখন প্রকাশিত হবে তখন তা কার্যকর হবে তা নিশ্চিত করতে সহায়তা করে অন্যান্য প্রান্তে, প্রচুর সংকোচনের সরঞ্জামগুলির বিপরীতে যা একই কাজ করতে রেগেক্স ব্যবহার করে (যা নির্ভরযোগ্য নয়)।

আমার আসলে আমার বর্তমান ভিজ্যুয়াল স্টুডিও সমাধানে একটি ওয়েব ডিপ্লোমেন্ট প্রজেক্টে একটি এমএসবিল্ড টাস্ক রয়েছে যা একটি স্ক্রিপ্ট চালায় যা সমাধানের আগে আমাদের সমাধানের আগে সঙ্কলিত সাফের মাধ্যমে সমাধানের জেএস ফাইলগুলি চালায় এবং এটি বেশ কার্যকরভাবে কাজ করে।

সম্পাদনা: যাইহোক, "সেরা" বিতর্কের জন্য উন্মুক্ত, যেহেতু "সেরা" এর মানদণ্ড প্রকল্পের প্রয়োজনের উপর নির্ভর করে পরিবর্তিত হবে। ব্যক্তিগতভাবে, আমি মনে করি শ্রিংকসেফ একটি ভাল ভারসাম্য; কিছু লোকের জন্য যা সবচেয়ে ছোট আকার == সেরা মনে করে, এটি অপর্যাপ্ত হবে।

সম্পাদনা: এটি লক্ষণীয় যে YUI সংক্ষেপক এছাড়াও গণ্ডার ব্যবহার করেন।



4

আপনি যদি প্যাকার ব্যবহার করেন তবে কেবল 'সঙ্কুচিত ভেরিয়েবল' অপশনে যান এবং ফলাফল কোডটি জিপ করুন। বেস 62 বিকল্পটি কেবলমাত্র তার জন্য যদি আপনার সার্ভার জিজেপড ফাইলগুলি প্রেরণ করতে না পারে। 'সঙ্কুচিত ভার্স' সহ প্যাকার YUI আরও ভাল সংক্ষেপণ অর্জন করে, তবে আপনি কোথাও একটি সেমিকোলন এড়িয়ে গেলে বাগগুলি প্রবর্তন করতে পারে।

বেস 62 মূলত একটি দরিদ্র লোকের জিজিপ, এ কারণেই গিজিপিং বেস 62-এড কোডটি আপনাকে জিঞ্জিপ সঙ্কুচিত-ভার-এড কোডের চেয়ে বড় ফাইল দেয়।





1

এখানে একটি YUI সংকোচক স্ক্রিপ্ট ( বাইউইক ) রয়েছে যা সমস্ত জেএস এবং সিএসএসকে একটি পাথ খুঁজে পায় এবং সংকোচিত করে (/ optionচ্ছিকভাবে ) সেগুলি অবিচ্ছিন্ন করে দেয়। একটি বিল্ড প্রক্রিয়া একীভূত ভাল।



1

KJScompress

http://opensource.seznam.cz/KJScompress/index.html

জাভাস্ক্রিপ্ট এবং সিএসএস সমন্বিত ফাইলগুলি থেকে অ-উল্লেখযোগ্য শ্বেতস্পেস এবং মন্তব্যগুলি সরাতে Kjscompress / csskompress দুটি অ্যাপ্লিকেশন (kjscompress a csscompress) সেট করা আছে। উভয়ই জিএনইউ / লিনাক্স অপারেটিং সিস্টেমের জন্য কমান্ড-লাইন অ্যাপ্লিকেশন।


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