এক জেএস ফাইলে একাধিক জাভাস্ক্রিপ্ট ফাইল একত্রিত করুন [বন্ধ]


91

আমি আমার ওয়েব অ্যাপ্লিকেশনটিতে jquery ব্যবহার করছি এবং আমার একক পৃষ্ঠায় আরও jquery স্ক্রিপ্ট ফাইল লোড করা প্রয়োজন।

গুগল প্রস্তাবিত আমি সমস্ত jquery স্ক্রিপ্ট ফাইলগুলিকে একটি একক ফাইলে একত্রিত করি।

কিভাবে আমি এটি করতে পারব?

উত্তর:


53

লিনাক্সে আপনি একাধিক জাভাস্ক্রিপ্ট ফাইল একত্রে সংযুক্ত করতে সহজ শেল স্ক্রিপ্ট https://github.com/dfsq/compressJS.sh ব্যবহার করতে পারেন । এটি ক্লোজার সংকলক অনলাইন পরিষেবাটি ব্যবহার করে যাতে ফলস্বরূপ স্ক্রিপ্টটি কার্যকরভাবে সংকুচিত হয়।

$ ./compressJS.sh some-script.js another-sctipt.js onemore.js

4
এই হ্যান্ডেলবারগুলির সাথে কাজ করতে পারে?
ড্যান বাকের

4
গ্রান্ট, গুল্প এবং এর মতো অন্যান্য জিনিসগুলির মতো কোনও টাস্ক ম্যানেজার ব্যবহার করা ভাল Bet গ্রান্ট ব্যবহার করে আমি আমার কম, টাইপসক্রিপ্ট, হ্যান্ডেলবারগুলি একটি উত্পন্ন ফোল্ডারে সংকলন করি, তারপরে আমি জেএস / সিএসএস ফাইলগুলিও উত্পন্ন ফোল্ডারে অনুলিপি করি, শেষ পর্যন্ত আমি একটি জেএস ফাইল সমস্ত জেজে ফাইলগুলিতে এবং একটি সিএসএস ফিলিতেও সংক্ষিপ্ত করে রাখি সমস্ত .css ফাইল। এবং আমার কাছে একজন পর্যবেক্ষক ফাইল পরিবর্তনের ক্ষেত্রে সেই কনফিগারেশনটি পুনরায় পুনরায় চালু করছেন যাতে আমি একটি ফাইল সংরক্ষণ করতে পারি এবং ব্রাউজারটি রিফ্রেশ করতে পারি এবং সমস্ত পরিবর্তনগুলি 1-3 সেকেন্ডের মধ্যে প্রয়োগ করা হয়ে থাকে।
ভাদোরকোয়েস্ট


18

কেবল পাঠ্য ফাইলগুলিকে একত্রিত করুন এবং তারপরে YUI কমপ্রেসারের মতো কিছু ব্যবহার করুন ।

ফাইলগুলি কমান্ডটি ব্যবহার করে সহজেই একত্রিত করা যায় cat *.js > main.jsএবং মেইন.জেগুলি তারপরে YUI সংক্ষেপক ব্যবহার করে চালানো যেতে পারে java -jar yuicompressor-x.y.z.jar -o main.min.js main.js

আগস্ট 2014 আপডেট করুন

আমি এখন বিভিন্ন প্লাগইন এবং কিছু ন্যূনতম কনফিগারেশন হিসাবে জাভাস্ক্রিপ্ট কনটেনটেশন এবং সংক্ষেপণের জন্য গুল্প ব্যবহার করে স্থানান্তরিত হয়েছি যাতে আপনি সেটআপ নির্ভরতা, কফিসিপি স্ক্রিপ্ট ইত্যাদির পাশাপাশি আপনার জেএস সংকোচনের মতো কাজ করতে পারেন।


4
ফিক্সড @ রিফর্মড।
প্রিডি

11

আপনি এটি মাধ্যমে করতে পারেন

  • ক। ম্যানুয়ালি: সমস্ত জাভাস্ক্রিপ্ট ফাইলগুলির একটিতে অনুলিপি করুন, এটিতে একটি সংক্ষেপক চালান ( alচ্ছিক তবে প্রস্তাবিত ) এবং সার্ভারে আপলোড করুন এবং সেই ফাইলটির লিঙ্ক করুন।
  • খ। পিএইচপি ব্যবহার করুন: সমস্ত জেএস ফাইল এবং includeসেগুলি সমস্তর একটি অ্যারে তৈরি করুন এবং একটি <script>ট্যাগে আউটপুট

4
বিকল্প বিটির জন্য সুপারিশ করা হয়নি কারণ এটি আপনার ব্রাউজারকে বড় বড় জেএসএস ফাইলের (দ্রুত) জন্য কেবল একটি অনুরোধের পরিবর্তে সমস্ত ছোট পৃথক .js ফাইলগুলির (ধীর) জন্য অনেক অনুরোধ করে।
মাইকপোট

4
@ মাইকপোট, হ্যাঁ ... তাই আমি এই শব্দটি ব্যবহার করেছি includeঅর্থাৎ <স্ক্রিপ্ট src = "...."> একাধিক ফাইলের সাথে লিঙ্ক করবেন না, কেবল সেগুলিকে একটি স্ক্রিপ্ট উপাদানটিতে অন্তর্ভুক্ত করুন। উপযুক্তভাবে ক্যাচিংয়ের পাশাপাশি একটি সিডিএন ব্যবহার করা উচিত।
গ্যারি গ্রিন

আহ দুঃখিত, আমি আপনার উত্তরটি ভুল লিখেছি।
মাইকপোট

4
আপনি এখানে কিছু উদাহরণ দিতে পারেন।
আনন্দ সোলঙ্কি

ওভারহেড পার্সিং করা এবং ঘটনাক্রমে কিছু ব্যাখ্যা করা এড়াতে রিডফিল () ব্যবহার করা ভাল।
চিনটো ভোক্রো

9

আমি সাধারণত এটিতে থাকি 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

আমি আসা করি এটা সাহায্য করবে.


8

আমি এই শেল স্ক্রিপ্টটি লিনাক্স 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

আমি এটি একটি সাধারণ ওয়েবসাইটের জন্য সত্যই সহায়ক বলে মনে করি।


7

স্ক্রিপ্ট গ্রুপিং counterproductive হয়, তাহলে আপনি ভালো কিছু ব্যবহার সমান্তরাল তাদের লোড উচিত http://yepnopejs.com/ বা http://headjs.com


4
জাভাস্ক্রিপ্ট ফাইল সংযুক্ত করার জন্য বৈধ কারণ রয়েছে। একটির পক্ষে এটি যথেষ্ট সম্ভব যে 20 2 কেবি ফাইলের অনুরোধ করতে 40 কেবি ফাইলের চেয়ে বেশি সময় লাগবে।
জোয়েল বি

4
মিলেনিয়ামে কতবার হয়?
ক্যাপসুল

4
আপনি যা ভাবেন তার চেয়ে প্রায়শই বেশি। স্ট্যাকওভারফ্লোর জন্য উত্স কোডটিও একবার দেখুন: "... বিকল্প বিটি সুপারিশ করা হয়নি কারণ এটি আপনার ব্রাউজারকে বড় বড় .js এর জন্য কেবল একটি অনুরোধের পরিবর্তে সমস্ত ছোট স্বতন্ত্র .js ফাইলগুলির (ধীর) জন্য অনেক অনুরোধ করে causes ফাইল (দ্রুত) "
জোয়েল বি

4
@ ক্যাপসুল আমি আপনাকে বলতে ঘৃণা করি, তবে ইন্টারনেটটি jQuery থেকে এমভিসি জাভাস্ক্রিপ্টে দ্রুত চলেছে, একটি ফাইল লোড করা সবসময় একাধিক এইচটিটিপি অনুরোধকে ছুঁড়ে ফেলার চেয়ে দ্রুত হবে।
ফক্সহাউন্ডন

4
@ ফক্সহাউন্ডন ইন্টারনেটও দ্রুত এইচটিটিপি 2 এ চলেছে তাই এটি আসলে আর কোন ব্যাপার না। যাইহোক, jQuery কেবল একটি উদাহরণ ছিল, আপনি এমভিসি জেএস
ক্যাপসুলের

7

এই স্ক্রিপ্টটি নোটপ্যাডে অনুলিপি করুন এবং .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

5

অরঙুতানক্লাউডের পরামর্শ অনুসারে আপনি ক্লোজার-সংকলকটি ব্যবহার করতে পারেন। এটা তোলে এর যে ইশারা আপনি আসলে না মূল্য প্রয়োজন কম্পাইল / জাভাস্ক্রিপ্ট অল্প করা, এটা কেবল একটি টেক্সট ফাইলে জাভাস্ক্রিপ্ট পাঠ্য ফাইল কনক্যাটেনেট করা সম্ভব করা কর্তব্য। তারা সাধারণত পৃষ্ঠায় অন্তর্ভুক্ত হয় সেই ক্রমে তাদের সাথে যোগ দিন।


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

4

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


4

আপনি KjsCompiler ব্যবহার করতে পারেন: https://github.com/knyga/kjscompiler শীতল নির্ভরতা ম্যানেজমেন্ট


আমি কয়েক ঘন্টা ধরে এই জাতীয় সরঞ্জামগুলি সন্ধান করছি তবে শেষ পর্যন্ত এটি ঠিক কীভাবে কাজ করেছিল তা কল্পনা করেছিলাম works সরল ও সোজা।
গ্রেজলি কোভ্যাকস

2

আমি তৈরি একটি স্ক্রিপ্ট আপনি ব্যবহার করতে পারেন। এটি চালানোর জন্য আপনার জেআরবি দরকার। https://bitbucket.org/ardee_aram/jscombiner (জেএসকম্বইনার)।

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


0

এটি কিছুটা চেষ্টা হতে পারে তবে আপনি কোডপ্লেক্স থেকে আমার ওপেন সোর্স উইকি প্রকল্পটি ডাউনলোড করতে পারেন:

http://shuttlewiki.codeplex.com

এটিতে একটি কমপ্রেস জাভাস্ক্রিপ্ট প্রজেক্ট রয়েছে (এবং কমপ্রেসসিএসএস) যা http://yuicompressor.codeplex.com/ প্রকল্প ব্যবহার করে ।

কোডটি স্ব-ব্যাখ্যামূলক হওয়া উচিত তবে এটি ফাইলগুলিকে সংমিশ্রণ এবং সংকুচিত করে তোলে কিছুটা সিম্প্ললার --- যাইহোক আমার জন্য :)

শাটলউইকি প্রকল্পটি বিল্ড পরবর্তী ইভেন্টে এটি কীভাবে ব্যবহার করতে হয় তা দেখায়।

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