ক্লোজার কম্পাইলার পরিষেবা অবহেলিত, এবং সরানো হবে। পরিবর্তে স্থানীয়ভাবে কম্পাইলার চালানো বিবেচনা করুন.
ওভারভিউ
ক্লোজার কম্পাইলার সার্ভিস API একটি ওয়েব-ভিত্তিক API এর মাধ্যমে ক্লোজার কম্পাইলার জাভাস্ক্রিপ্ট সংকলনে প্রোগ্রাম্যাটিক অ্যাক্সেস প্রদান করে। যদিও ক্লোজার কম্পাইলার UI আপনাকে একটি ওয়েব পৃষ্ঠায় একটি সাধারণ ফর্মের মাধ্যমে কম্পাইলার পরিষেবাটি ব্যবহার করার একটি সহজ উপায় দেয়, এই ওয়েব পৃষ্ঠা থেকে আউটপুট অনুলিপি করা কাজ করার সবচেয়ে কার্যকর উপায় নয়। ক্লোজার কম্পাইলার সার্ভিস এপিআই-এর সাহায্যে আপনি আপনার নিজস্ব টুল তৈরি করতে এবং আপনার নিজস্ব কাজের প্রবাহ তৈরি করতে বহুমুখীতা অর্জন করেন।
এই টিউটোরিয়ালটি আপনাকে ক্লোজার কম্পাইলার সার্ভিসে জাভাস্ক্রিপ্ট পাঠানো এবং ক্লোজার কম্পাইলার আউটপুট ফেরত পাওয়ার প্রক্রিয়ার মধ্য দিয়ে নিয়ে যায়। উদাহরণটি ক্লোজার কম্পাইলার কম্পাইলেশনের সবচেয়ে মৌলিক স্তর ব্যবহার করে, যা আপনার জাভাস্ক্রিপ্ট থেকে মন্তব্য এবং হোয়াইটস্পেসকে সরিয়ে দেয়।
এই টিউটোরিয়ালটি অনুমান করে যে আপনার জাভাস্ক্রিপ্ট এবং HTTP এর সাথে প্রাথমিক পরিচিতি রয়েছে। যদিও এটি ক্লোজার কম্পাইলার পরিষেবাতে জাভাস্ক্রিপ্ট জমা দেওয়ার জন্য একটি পাইথন স্ক্রিপ্ট ব্যবহার করে, উদাহরণটি অনুসরণ করার জন্য আপনাকে পাইথন জানতে হবে না।
API এর সাথে কীভাবে যোগাযোগ করবেন
- অনুরোধের পরামিতি নির্ধারণ করুন
আপনি ক্লোজার কম্পাইলার সার্ভারে HTTP POST অনুরোধ করে ক্লোজার কম্পাইলার পরিষেবার সাথে ইন্টারঅ্যাক্ট করেন। প্রতিটি অনুরোধের সাথে আপনাকে অবশ্যই কমপক্ষে নিম্নলিখিত পরামিতিগুলি পাঠাতে হবে:
-
js_code
বাcode_url
এই প্যারামিটারের মানটি জাভাস্ক্রিপ্টকে নির্দেশ করে যা আপনি কম্পাইল করতে চান। আপনাকে অবশ্যই এই প্যারামিটারগুলির মধ্যে অন্তত একটি অন্তর্ভুক্ত করতে হবে এবং আপনি উভয়ই অন্তর্ভুক্ত করতে পারেন।
js_code
প্যারামিটারটি অবশ্যই একটি স্ট্রিং হতে হবে যাতে জাভাস্ক্রিপ্ট থাকে, যেমনalert('hello')
।code_url
প্যারামিটারে অবশ্যই একটি JavaScript.js
ফাইলের URL থাকতে হবে যা HTTP এর মাধ্যমে উপলব্ধ।আপনি
js_code:path/to/filename.js
ফর্মে নামযুক্ত উত্স পরামিতিগুলিও অন্তর্ভুক্ত করতে পারেন। প্রতিটি ফাইল একটি ভার্চুয়াল ফাইল সিস্টেমে তৈরি করা হবে, যাECMASCRIPT6
এ সমর্থিতimport
ওexport
বিবৃতির মাধ্যমে প্রমিত মডিউল সক্ষম করে।-
compilation_level
এই প্যারামিটারের মান আপনার জাভাস্ক্রিপ্টে প্রয়োগ করার জন্য কম্প্রেশন এবং অপ্টিমাইজেশনের মাত্রা নির্দেশ করে। তিনটি সম্ভাব্য সংকলন স্তর রয়েছে:
WHITESPACE_ONLY
,SIMPLE_OPTIMIZATIONS
, এবংADVANCED_OPTIMIZATIONS
। এই উদাহরণটিWHITESPACE_ONLY
সংকলন ব্যবহার করে, যা কেবল মন্তব্য এবং সাদা স্থান ছিন্ন করে।compilation_level
প্যারামিটার ডিফল্টSIMPLE_OPTIMIZATIONS
এর মান।-
output_info
এই প্যারামিটারের মানটি নির্দেশ করে যে আপনি কম্পাইলার থেকে কী ধরনের তথ্য চান। চার ধরনের সম্ভাব্য আউটপুট রয়েছে:
compiled_code
,warnings
,errors
, এবংstatistics
। এই উদাহরণটিcompiled_code
মান ব্যবহার করে, যা ক্লোজার কম্পাইলার পরিষেবাকে অনুরোধে প্রাপ্ত জাভাস্ক্রিপ্টের সংকুচিত সংস্করণটি আউটপুট করতে বলে।-
output_format
ক্লোজার কম্পাইলার পরিষেবার আউটপুটের বিন্যাস। তিনটি সম্ভাব্য আউটপুট ফরম্যাট আছে:
text
,json
, বাxml
। এই উদাহরণটি মানtext
ব্যবহার করে, যা কাঁচা পাঠকে আউটপুট করে।output_format
প্যারামিটারটিtext
একটি মানের সাথে ডিফল্ট হয়।
এই প্রয়োজনীয় প্যারামিটার এবং অতিরিক্ত ঐচ্ছিক প্যারামিটার সম্পর্কে আরও তথ্যের জন্য, API রেফারেন্স দেখুন।
এই পরিচায়ক টিউটোরিয়ালের উদাহরণটি শুধুমাত্র ক্লোজার কম্পাইলার পরিষেবাতে কাঁচা জাভাস্ক্রিপ্টের একটি লাইন পাঠায়, তাই এটি
code_url
এর পরিবর্তেjs_code
ব্যবহার করে। এটিWHITESPACE_ONLY
এর একটিcompilation_level
ব্যবহার করে,text
একটিoutput_format
সহ raw টেক্সট আউটপুট চায় এবংcompiled_code
এর একটিoutput_info
ধরনের জন্য জিজ্ঞাসা করে। -
- ক্লোজার কম্পাইলার সার্ভিসে একটি পোস্টের অনুরোধ করুন
ক্লোজার কম্পাইলার পরিষেবা থেকে আউটপুট পেতে, ক্লোজার কম্পাইলার পরিষেবা API URL-এ পোস্ট অনুরোধে ধাপ 1-এ আপনি যে প্যারামিটারগুলি বেছে নিয়েছেন তা পাঠান। এটি করার একটি উপায় হল ক্লোজার কম্পাইলার সার্ভিস API-এর হ্যালো ওয়ার্ল্ডের মতো একটি সাধারণ HTML ফর্ম।
বিকাশের সময় এই ধরনের একটি ফর্ম ব্যবহার করতে, তবে, আপনাকে ব্রাউজার থেকে আউটপুটটি অনুলিপি করতে হবে এবং এটি একটি .js ফাইলে পেস্ট করতে হবে। যদি, পরিবর্তে, আপনি ক্লোজার কম্পাইলার পরিষেবাতে অনুরোধ পাঠানোর জন্য একটি ছোট প্রোগ্রাম লেখেন, আপনি সরাসরি একটি ফাইলে ক্লোজার কম্পাইলার আউটপুট লিখতে পারেন। উদাহরণস্বরূপ, নিম্নলিখিত পাইথন স্ক্রিপ্টটি ক্লোজার কম্পাইলার পরিষেবাতে অনুরোধ পাঠায় এবং প্রতিক্রিয়াটি লেখে:
#!/usr/bin/python2.4 import httplib, urllib, sys # Define the parameters for the POST request and encode them in # a URL-safe format. params = urllib.urlencode([ ('js_code', sys.argv[1]), ('compilation_level', 'WHITESPACE_ONLY'), ('output_format', 'text'), ('output_info', 'compiled_code'), ]) # Always use the following value for the Content-type header. headers = { "Content-type": "application/x-www-form-urlencoded" } conn = httplib.HTTPSConnection('closure-compiler.appspot.com') conn.request('POST', '/compile', params, headers) response = conn.getresponse() data = response.read() print data conn.close()
দ্রষ্টব্য: এই উদাহরণটি পুনরুত্পাদন করতে, উইন্ডোজ ব্যবহারকারীদের পাইথন ইনস্টল করতে হতে পারে। উইন্ডোজের অধীনে পাইথন ইনস্টল এবং ব্যবহার করার নির্দেশাবলীর জন্য পাইথন উইন্ডোজ FAQ দেখুন।
এই স্ক্রিপ্টটি কমান্ড লাইন আর্গুমেন্ট হিসাবে এটিতে পাস করা জাভাস্ক্রিপ্টকে অপ্টিমাইজ করে। উপরের
compile.py
নামক একটি ফাইলে পেস্ট করুন, ফাইলটিকে এক্সিকিউটেবল করার জন্য অনুমতি পরিবর্তন করুন এবং নিম্নলিখিত কমান্ডটি চালান:$ python compile.py 'alert("hello");// This comment should be stripped'
এই কমান্ডটি ক্লোজার কম্পাইলার প্রতিক্রিয়া থেকে সংকুচিত কোড প্রিন্ট করে:
alert("hello");
কারণ এই উদাহরণটি মৌলিক সংকলন ব্যবহার করে, কম্পাইলার মন্তব্যটি বন্ধ করা ছাড়া অন্য কিছু করে না।
এই স্ক্রিপ্ট সম্পর্কে নোট করার জন্য এখানে কয়েকটি জিনিস রয়েছে:
- একটি URL-এনকোডেড স্ট্রিং হিসাবে পরামিতিগুলি HTTPS সংযোগের অনুরোধ পদ্ধতিতে প্রেরণ করা হয়।
urllib.urlencode
এ কল করার পরে, প্যারামস ভেরিয়েবলে নিম্নলিখিত স্ট্রিং থাকে:js_code=alert%28%22hello%22%29%3B%2F%2F+This+comment+should+be+stripped&output_info=compiled_code&out=text&compilation_level=WHITESPACE_ONLY
আপনি যদি নিজের স্ক্রিপ্ট লেখেন, তাহলে স্ক্রিপ্টটি ইউআরএল-এনকোড করা বিষয়বস্তু এভাবে পোস্ট করবে। - অনুরোধে সর্বদা
application/x-www-form-urlencoded
এর একটিContent-type
শিরোনাম থাকতে হবে
- একটি URL-এনকোডেড স্ট্রিং হিসাবে পরামিতিগুলি HTTPS সংযোগের অনুরোধ পদ্ধতিতে প্রেরণ করা হয়।
পরবর্তী পদক্ষেপ
আরও বাস্তবসম্মত বিকাশের দৃশ্যে আরও ভাল কম্প্রেশন অর্জনের জন্য পরিষেবাটি ব্যবহার করতে শিখতে , API এর সাথে ফাইল কম্প্রেস করা চালিয়ে যান।