আমি আমার ওয়েব অ্যাপ্লিকেশনটিতে jquery ব্যবহার করছি এবং আমার একক পৃষ্ঠায় আরও jquery স্ক্রিপ্ট ফাইল লোড করা প্রয়োজন।
গুগল প্রস্তাবিত আমি সমস্ত jquery স্ক্রিপ্ট ফাইলগুলিকে একটি একক ফাইলে একত্রিত করি।
কিভাবে আমি এটি করতে পারব?
আমি আমার ওয়েব অ্যাপ্লিকেশনটিতে jquery ব্যবহার করছি এবং আমার একক পৃষ্ঠায় আরও jquery স্ক্রিপ্ট ফাইল লোড করা প্রয়োজন।
গুগল প্রস্তাবিত আমি সমস্ত jquery স্ক্রিপ্ট ফাইলগুলিকে একটি একক ফাইলে একত্রিত করি।
কিভাবে আমি এটি করতে পারব?
উত্তর:
লিনাক্সে আপনি একাধিক জাভাস্ক্রিপ্ট ফাইল একত্রে সংযুক্ত করতে সহজ শেল স্ক্রিপ্ট https://github.com/dfsq/compressJS.sh ব্যবহার করতে পারেন । এটি ক্লোজার সংকলক অনলাইন পরিষেবাটি ব্যবহার করে যাতে ফলস্বরূপ স্ক্রিপ্টটি কার্যকরভাবে সংকুচিত হয়।
$ ./compressJS.sh some-script.js another-sctipt.js onemore.js
গুগল ক্লোজার সংকলক চেষ্টা করে দেখুন:
http://code.google.com/closure/compiler/docs/gettingstarted_ui.html
কেবল পাঠ্য ফাইলগুলিকে একত্রিত করুন এবং তারপরে YUI কমপ্রেসারের মতো কিছু ব্যবহার করুন ।
ফাইলগুলি কমান্ডটি ব্যবহার করে সহজেই একত্রিত করা যায় cat *.js > main.js
এবং মেইন.জেগুলি তারপরে YUI সংক্ষেপক ব্যবহার করে চালানো যেতে পারে java -jar yuicompressor-x.y.z.jar -o main.min.js main.js
।
আগস্ট 2014 আপডেট করুন
আমি এখন বিভিন্ন প্লাগইন এবং কিছু ন্যূনতম কনফিগারেশন হিসাবে জাভাস্ক্রিপ্ট কনটেনটেশন এবং সংক্ষেপণের জন্য গুল্প ব্যবহার করে স্থানান্তরিত হয়েছি যাতে আপনি সেটআপ নির্ভরতা, কফিসিপি স্ক্রিপ্ট ইত্যাদির পাশাপাশি আপনার জেএস সংকোচনের মতো কাজ করতে পারেন।
আপনি এটি মাধ্যমে করতে পারেন
include
সেগুলি সমস্তর একটি অ্যারে তৈরি করুন এবং একটি <script>
ট্যাগে আউটপুটinclude
অর্থাৎ <স্ক্রিপ্ট src = "...."> একাধিক ফাইলের সাথে লিঙ্ক করবেন না, কেবল সেগুলিকে একটি স্ক্রিপ্ট উপাদানটিতে অন্তর্ভুক্ত করুন। উপযুক্তভাবে ক্যাচিংয়ের পাশাপাশি একটি সিডিএন ব্যবহার করা উচিত।
আমি সাধারণত এটিতে থাকি Makefile
:
# All .js compiled into a single one.
compiled=./path/of/js/main.js
compile:
@find ./path/of/js -type f -name "*.js" | xargs cat > $(compiled)
তারপরে আপনি চালান:
make compile
আমি আসা করি এটা সাহায্য করবে.
আমি এই শেল স্ক্রিপ্টটি লিনাক্স https://github.com/eloone/olvejs এ ব্যবহার করি ।
উপরের স্ক্রিপ্টগুলির তুলনায় এটি ব্যবহারে খুব সহজ হওয়ার সুবিধাগুলি রয়েছে এবং একটি বড় প্লাস হ'ল আপনি যে জেএস ফাইলগুলি ইনপুট পাঠ্য ফাইলগুলিতে মার্জ করতে চান তা কমান্ড লাইনে নয়, তাই আপনার তালিকাটি পুনরায় ব্যবহারযোগ্য এবং প্রতিবার আপনার ফাইলগুলিকে মার্জ করতে চাইলে আপনাকে এটি টাইপ করতে হবে না। আপনি যখনই উত্পাদনে যেতে চান প্রতিবার এই পদক্ষেপটি পুনরুক্ত করবেন তাই এটি খুব সহজ। আপনি তালিকায় একত্রীকরণ করতে চান না এমন ফাইলগুলিও আপনি মন্তব্য করতে পারেন। আপনি সম্ভবত যে কমান্ড লাইনটি টাইপ করবেন তা হ'ল:
$ mergejs js_files_list.txt output.js
এবং যদি আপনি ফলাফলটি মার্জ করা ফাইলটিও সংক্ষেপ করতে চান:
$ mergejs -c js_files_list.txt output.js
এটি output-min.js
গুগলের ক্লোজার সংকলক দ্বারা তৈরি করা তৈরি করবে । বা:
$ mergejs -c js_files_list.txt output.js output.minified.js
আপনি যদি চান আপনার নামযুক্ত ফাইলের জন্য একটি নির্দিষ্ট নাম চান output.minified.js
আমি এটি একটি সাধারণ ওয়েবসাইটের জন্য সত্যই সহায়ক বলে মনে করি।
স্ক্রিপ্ট গ্রুপিং counterproductive হয়, তাহলে আপনি ভালো কিছু ব্যবহার সমান্তরাল তাদের লোড উচিত http://yepnopejs.com/ বা http://headjs.com
এই স্ক্রিপ্টটি নোটপ্যাডে অনুলিপি করুন এবং .vbs ফাইল হিসাবে সংরক্ষণ করুন। এই স্ক্রিপ্টে .js ফাইলগুলি টেনে আনুন এবং ফেলে দিন।
পুনশ্চ. এটি কেবল উইন্ডোতে কাজ করবে।
set objArgs = Wscript.Arguments
set objFso = CreateObject("Scripting.FileSystemObject")
content = ""
'Iterate through all the arguments passed
for i = 0 to objArgs.count
on error resume next
'Try and treat the argument like a folder
Set folder = objFso.GetFolder(objArgs(i))
'If we get an error, we know it is a file
if err.number <> 0 then
'This is not a folder, treat as file
content = content & ReadFile(objArgs(i))
else
'No error? This is a folder, process accordingly
for each file in folder.Files
content = content & ReadFile(file.path)
next
end if
on error goto 0
next
'Get system Temp folder path
set tempFolderPath = objFso.GetSpecialFolder(2)
'Generate a random filename to use for a temporary file
strTempFileName = objFso.GetTempName
'Create temporary file in Temp folder
set objTempFile = tempFolderPath.CreateTextFile(strTempFileName)
'Write content from JavaScript files to temporary file
objTempFile.WriteLine(content)
objTempFile.Close
'Open temporary file in Notepad
set objShell = CreateObject("WScript.Shell")
objShell.Run("Notepad.exe " & tempFolderPath & "\" & strTempFileName)
function ReadFile(strFilePath)
'If file path ends with ".js", we know it is JavaScript file
if Right(strFilePath, 3) = ".js" then
set objFile = objFso.OpenTextFile(strFilePath, 1, false)
'Read entire contents of a JavaScript file and returns it as a string
ReadFile = objFile.ReadAll & vbNewLine
objFile.Close
else
'Return empty string
ReadFile = ""
end if
end function
অরঙুতানক্লাউডের পরামর্শ অনুসারে আপনি ক্লোজার-সংকলকটি ব্যবহার করতে পারেন। এটা তোলে এর যে ইশারা আপনি আসলে না মূল্য প্রয়োজন কম্পাইল / জাভাস্ক্রিপ্ট অল্প করা, এটা কেবল একটি টেক্সট ফাইলে জাভাস্ক্রিপ্ট পাঠ্য ফাইল কনক্যাটেনেট করা সম্ভব করা কর্তব্য। তারা সাধারণত পৃষ্ঠায় অন্তর্ভুক্ত হয় সেই ক্রমে তাদের সাথে যোগ দিন।
আপনি যদি পিএইচপি চালাচ্ছেন তবে আমি মিনিফাইয়ের পরামর্শ দিচ্ছি কারণ এটি সিএসএস এবং জেএস উভয়ের জন্যই ফ্লাইতে একত্রিত হয়ে মিনিফাইজ করে। একবার এটি কনফিগার করার পরে, কেবল সাধারণ হিসাবে কাজ করুন এবং এটি সমস্ত কিছুর যত্ন নেয়।
আপনি KjsCompiler ব্যবহার করতে পারেন: https://github.com/knyga/kjscompiler শীতল নির্ভরতা ম্যানেজমেন্ট
আমি তৈরি একটি স্ক্রিপ্ট আপনি ব্যবহার করতে পারেন। এটি চালানোর জন্য আপনার জেআরবি দরকার। https://bitbucket.org/ardee_aram/jscombiner (জেএসকম্বইনার)।
এটি কী আলাদা করে দেয় তা হ'ল এটি জাভাস্ক্রিপ্টে ফাইল পরিবর্তনগুলি দেখে এবং এটি আপনার পছন্দের স্ক্রিপ্টের সাথে স্বয়ংক্রিয়ভাবে একত্রিত হয়। সুতরাং প্রতিবার আপনার জাভাস্ক্রিপ্টটি পরীক্ষা করার সময় ম্যানুয়ালি "বিল্ড" করার দরকার নেই। আশা করি এটি আপনাকে সহায়তা করবে, আমি বর্তমানে এটি ব্যবহার করছি।
এটি কিছুটা চেষ্টা হতে পারে তবে আপনি কোডপ্লেক্স থেকে আমার ওপেন সোর্স উইকি প্রকল্পটি ডাউনলোড করতে পারেন:
http://shuttlewiki.codeplex.com
এটিতে একটি কমপ্রেস জাভাস্ক্রিপ্ট প্রজেক্ট রয়েছে (এবং কমপ্রেসসিএসএস) যা http://yuicompressor.codeplex.com/ প্রকল্প ব্যবহার করে ।
কোডটি স্ব-ব্যাখ্যামূলক হওয়া উচিত তবে এটি ফাইলগুলিকে সংমিশ্রণ এবং সংকুচিত করে তোলে কিছুটা সিম্প্ললার --- যাইহোক আমার জন্য :)
শাটলউইকি প্রকল্পটি বিল্ড পরবর্তী ইভেন্টে এটি কীভাবে ব্যবহার করতে হয় তা দেখায়।