Magento 2 কেন `পথের পরিবর্তে প্রয়োজনীয় JS` মানচিত্র` ব্যবহার করে `


17

ম্যাজেন্টো 2 এর প্রয়োজনীয় জেএস বাস্তবায়নে, অনেকগুলি মূল মডিউল একটি কনফিগারেশন ব্যবহার করে

map: {
    '*': {
        editTrigger:   'mage/edit-trigger',
        addClass:      'Magento_Translation/add-class'
    }
}

RequireJS এ, mapকনফিগারেশন নির্দেশিকা বিকাশকারীদের প্রয়োজনীয় JS বলতে অনুমতি দেয়

আপনি যখন মডিউল এক্স লোড করেন এবং এটি মডিউল Y ব্যবহার করে, মডিউল ওয়াইডকে মডিউল জেডের সাথে প্রতিস্থাপন করুন - তবে কেবল মডিউল এক্সের জন্য

অথবা, কোডে

map: {
    'modulex':{
        'moduley':'modulez'
    }
}

mapবৈশিষ্ট্য মূলত আপনাকে কনফিগারেশন মাধ্যমে মডিউল সংজ্ঞা আউট অদলবদল করতে পারবেন - Magento কথা, এটা জাভাস্ক্রিপ্ট একটি মডিউল লেখা বৈশিষ্ট্য।

আমার কাছে যা স্পষ্ট তা নয় তবে *এটি mapসম্পত্তিটির মূল হিসাবে কী হিসাবে ম্যাজেন্টোর ভারী ব্যবহার ।

map: {
    '*': {
        editTrigger:   'mage/edit-trigger',
        addClass:      'Magento_Translation/add-class'
    }
}

*মূলত বলছেন * এই ম্যাপিং না সব মডিউল, এবং তার উদ্দীষ্ট ব্যবহারের ক্ষেত্রে হয় একটি বেস মডিউল এলিয়াসিং প্রদান করে আরো সুনির্দিষ্ট মডিউল জন্য পরিবর্তন করা যাবে।

তবে ম্যাজেন্টো এটি প্রয়োজনীয় জেএস এর pathsসম্পত্তির প্রতিস্থাপন হিসাবে ব্যবহার করবে বলে মনে হয় । উদাহরণস্বরূপ, এটি মনে হয় যে ম্যাজেন্টো নিম্নলিখিতগুলির সাথে একই জিনিস অর্জন করতে পারত

paths: {
    'editTrigger': 'mage/edit-trigger',
    'addClass':    'Magento_Translation/add-class',
}

এবং তারপরে প্রয়োজনে সিলেক্ট করে নির্দিষ্ট ম্যাপিং করে।

কেউ কি জানেন যে কেন ম্যাগেন্টো map:*পথ চলার জন্য তার পদ্ধতি হিসাবে বেছে নিয়েছিল ? অর্থাত্ - অসম্পূর্ণ mapএবং pathঅসম্পূর্ণতার মধ্যে পার্থক্য সম্পর্কে আমার বোঝা - বা এটি "একের ছয়টি, অন্য অর্ধ ডজন অন্যান্য" বিষয়গুলির মধ্যে এটি one অথবা ম্যাজেন্টো এইভাবে এটি করে কিছু অতিরিক্ত আচরণ করে।

নির্দিষ্ট সমস্যা সমাধানের জন্য জিজ্ঞাসা না করে, আমি এটি সম্পর্কে ভারী লিখতে শুরু করার আগে প্রয়োজনীয় জেএস এবং ম্যাজেন্টোর বাস্তবায়নের কোনও ভুল বোঝাবুঝি পরিষ্কার করতে বলছি :)

উত্তর:


23

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

map: {
    '*': {
        editTrigger:   'mage/edit-trigger',
    }
}

লোড হচ্ছে তা নিশ্চিত editTriggerমডিউল আসলে লোড mage/edit-triggerমডিউল দেখবেন, কিন্তু যে editTrigger/fooলোড হবে mage/edit-trigger/fooমডিউল।

pathsডিরেক্টিভের একটি উপসর্গ ম্যাপিং নয়। এটি একটি সাধারণ টু ওয়ান ম্যাপিং।


1
এছাড়াও, আমি যদি সঠিকভাবে path: {foo: 'bar'}প্রত্যাহার করি তবে আপনাকে barস্পষ্টভাবে প্রয়োজনীয়তা থেকে বিরত করবে এবং কেবলমাত্র এটির দ্বারা এটি অ্যাক্সেসের অনুমতি দেবে foo
এমএমএস 27
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.