সুরকারের সাথে মডিউল লাইব্রেরি নির্ভরতাগুলি পরিচালনা করা


9

আমি ড্রুপাল-সুরকারের সাথে একটি কাস্টম মডিউলে নির্ভরতা পেয়েছি , আমি সুরকার ম্যানেজার ব্যবহার না করে আমার কাস্টম মডিউলে তৃতীয় পক্ষের গ্রন্থাগারকে কীভাবে অন্তর্ভুক্ত করতে পারি এবং ড্রপাল 8-তে আমার অবদানের মডিউল রচয়িতা নির্ভরতা কীভাবে পরিচালনা করতে পারি যা আমার প্রশ্নের সাথে সম্পর্কিত, তবে না দ্রুপাল ৮.১ এবং সুরকার পরিচালকের অবমূল্যায়নের পরে আর প্রযোজ্য বলে মনে হচ্ছে ।

এছাড়াও ডি 8 এবং সুরকারের সংজ্ঞা সম্পর্কিত পরিচিতির মতো জনপ্রিয় গাইডগুলি আর প্রয়োগ করা হবে না কারণ তারা সুরকার পরিচালককেও উল্লেখ করেছে।

অন্য সমাধানটি সুরকার ম্যানেজারের বিপরীতে, মূল সুরকার.জসন ফাইলটিকে অনেক বেশি কোর হ্যাকিংয়ের মতো মনে হয় এবং ড্রুপাল কোর (?) এর প্রতিটি ড্রশ আপডেটের সাথে সম্ভবত ভেঙে যায়।

আরও সুনির্দিষ্টভাবে, আমি দ্রুপাল to থেকে ৮ পর্যন্ত ভিউ ভিকার্ডগুলি আপডেট করার চেষ্টা করছি I

{
  "name": "drupal/views_vcards",
  "description": "Allows creation of vCards using the fields provided by the Views module.",
  "type": "drupal-module",
  "license": "GPL-2.0+",
  "homepage": "https://drupal.org/project/views_vcards",
  "require": {
    "maennchen/zipstream-php": "0.3.*"
  }
}

তবে আমি যদি আমার মডিউল ফোল্ডারে কোনও কম্পোজার.জেসন ফাইল রাখি, আমি কীভাবে দ্রুপালকে সচেতন করব যে সেই ফাইলটি রয়েছে এবং আমি কীভাবে প্রয়োজনীয় zipstream-phpলাইব্রেরি ডাউনলোড হয়েছে তা নিশ্চিত করব ?

কেবলমাত্র composer updateড্রুপাল রুট থেকে চালানো ড্রুপাল নির্ভরতা অনেকগুলি আপডেট করে তবে এটি মডিউল ফোল্ডারে থাকা কম্পোজার.জেসন ফাইলগুলিকে অন্তর্ভুক্ত করে না। আমি ধরেও নিচ্ছি না যে composer installনির্ভরশীলতা সহ সমস্ত মডিউলটির ভিতরে থেকে আমার কল করা উচিত ।

আমি কীভাবে দ্রোপালকে সুরকার পরিচালক এবং / অথবা হ্যাকিং কোর ব্যবহার না করে মডিউলটির নির্ভরতা সম্পর্কে সচেতন করব?

হালনাগাদ:

সুরকার একত্রীকরণ কোর দ্বারা ব্যবহৃত প্লাগইন একটি ওয়াইল্ড কার্ড পথ সমর্থন হয়েছে বলে মনে হচ্ছে:

{
    "require": {
        "wikimedia/composer-merge-plugin": "dev-master"
    },
    "extra": {
        "merge-plugin": {
            "include": [
                "composer.local.json",
                "extensions/*/composer.json" // < ---- THIS LINE
            ],
            "require": [
                "submodule/composer.json"
            ],
            "recurse": true,
            "replace": false,
            "merge-dev": true,
            "merge-extra": false
        }
    }
}

কোর কেন একীভূত হয় না modules/*/composer.json, যে সবকিছু ঠিক করবে?

আপডেট 2:

এটি সমর্থন না করার জন্য যুক্তিগুলি এই ইস্যুতে আচ্ছাদিত রয়েছে (যা এখন কিছু সময়ের জন্য চুপ করে রয়েছে)।


1
প্রধান সুরকার ফাইল সম্পাদনা করা সঠিক পদ্ধতি।
ইয়াল

আপনি যদি সুরকারকে আপনার সমস্ত নির্ভরতা (মূল অন্তর্ভুক্ত) পরিচালনা করতে দেন তবে আপনার সমস্যাটি অদৃশ্য হয়ে যাবে। Packagist.org/packages/drupal/core
Eyal

: এখানে একটি উদাহরণ সুরকার ফাইল আমি অন্য প্রশ্নের জন্য লিখেছেন drupal.stackexchange.com/a/187097/40011
Eyal

উত্তর আইল এর জন্য ধন্যবাদ। সুতরাং composer.jsonফাইলের মাধ্যমে সমস্ত অবদানের মডিউলগুলি পরিচালনা করা নতুন প্রস্তাবিত উপায় এবং মডিউলগুলি ডাউনলোড এবং ইনস্টল করার জন্য ড্রশ প্রতিস্থাপন হচ্ছে? অবশ্যই রচয়িতা স্বয়ংক্রিয়ভাবে নেস্টেড নির্ভরতাগুলি সমাধান করবে এবং আমার নির্ভরতাগুলি ডাউনলোড করবে।
নেওগ্রাফ 734

উত্তর:


6

সর্বাধিক নমনীয়তার জন্য ড্রুপাল-স্ক্যাফোল্ড ব্যবহার করে নতুন পদ্ধতি

ড্রুপাল ৮.৪.০ এবং ততোধিক ড্রাশ> ৯.০.০ ব্যবহার করে , ড্রশ মেক অবচিত করা হয় এবং আপনার নীচের নীচে drupal.org ডকুমেন্টেশন লিঙ্কগুলিতে একটি সম্পূর্ণ সুরকার কাজের প্রবাহ ব্যবহার করা উচিত। এই লিঙ্কগুলি কোনও সুরকার প্রকল্প ব্যবহার করার পরামর্শ দেয় তবে এটি প্রত্যেকের ওয়েব সার্ভার সেটআপের জন্য কাজ না করে। বিস্তারিত বর্ণনার জন্য ম্যানুয়ালি কমপোজার.জে জসন সেটআপ করবেন কীভাবে নীচের পদক্ষেপটি নীচে দেওয়া হল । মডিউল ম্যানুয়ালি যুক্ত সম্পর্কিত নির্দেশাবলী এখনও করা যেতে পারে।

# Initialize composer. Stability alpha is important for custom modules that may be source managed outside of packagist or drupal.org
composer init --name myvendor/mysite --stability=alpha --license=GPLv2
composer config repositories.drupal composer https://packages.drupal.org/8
composer config discard-changes true

তারপরে আপনাকে নিজের পছন্দগুলির উপর ভিত্তি করে ম্যানুয়ালি কমপোজার জে জসন যুক্ত করতে হবে কারণ সুরকার হিসাবে স্বয়ংক্রিয়ভাবে এটি করার উপায় নেই। এগুলি আপনার মডিউলগুলি যেখানে চান সেগুলি ইনস্টল করার জন্য ড্রুপাল-স্ক্যাফোর্ডকে কনফিগার করবে (বিক্রেতার / অথবা অন্য কোনও বিকাশকারী দ্বারা নির্বাচিত ডিরেক্টরিতে বিপরীতে)। 'ওয়েবরুট' কে 'www' বা 'সর্বজনীন' বা আপনার হোস্ট কী তা পরিবর্তন করুন।

    "extra": {
        "installer-paths": {
            "webroot/core": ["type:drupal-core"],
            "webroot/modules/contrib/{$name}": ["type:drupal-module"],
            "webroot/modules/custom/{$name}": ["type:drupal-custom-module"],
            "webroot/themes/contrib/{$name}": ["type:drupal-theme"],
            "webroot/themes/custom/{$name}": ["type:drupal-custom-theme"],
            "webroot/profiles/{$name}": ["type:drupal-profile"],
            "webroot/libraries/{$name}": ["type:drupal-library"]
        },
        "patches": {}
    },
    "scripts": {
        "drupal-scaffold": "DrupalComposer\\DrupalScaffold\\Plugin::scaffold"
    }

এখন আপনি কিছু নির্ভরতা ইনস্টল করতে পারেন। নোট করুন যে সুরকারকে এটি কাজ করার জন্য অবশ্যই স্ক্রিপ্ট এবং প্লাগইন ব্যবহার করতে সক্ষম হতে হবে।

composer require composer/installers:^1.4.0 drupal-composer/drupal-scaffold:^2.3.0 cweagans/composer-patches:^1.6.2

একবার ড্রুপাল-স্ক্যাফোল্ড স্ক্রিপ্টটি চালান (বা আপনার বিল্ড সার্ভারে প্রয়োজন অনুসারে):

composer drupal-scaffold

ড্রুপাল কোর, মডিউল, থিম, ইত্যাদি ... ড্রপাল-মার্জ-প্লাগইন ছাড়াই নীচের নির্দেশাবলী অনুসারে ইনস্টল করা যেতে পারে।

composer require drupal/core:~8.5.1 drupal/views_vcards

পুরানো পদ্ধতিটি ড্রুপাল-মার্জ-প্লাগইন ব্যবহার করে বা সরাসরি কোর সহ কাজ করে

ড্রুপাল ৮.১.০ এবং তার চেয়েও বড়র জন্য, আপনি সরাসরি দ্রুপাল মডিউলগুলির প্রয়োজনের জন্য সুরকার ব্যবহার করতে পারেন। একটি দ্রুপাল প্রকল্পে সুরকার ব্যবহার করা এবং দ্রুপাল.আর.র মাধ্যমে দ্রুপাল প্যাকেজ ইনস্টল করার জন্য সুরকার ব্যবহারের আশেপাশের ডকুমেন্টেশন আপডেট করা হয়েছে ড্রুপাল.অর্গের প্যাকেজিস্টের সুবিধা গ্রহণের জন্য। আমি দেখতে পেয়েছি এটি ইতিমধ্যে একটি স্থাপনার দৃশ্যে খুব ভাল কাজ করে।

composer config repositories.drupal composer https://packages.drupal.org/8
composer require drupal/views_vcards

বিকাশের জন্য, আমি মনে করি যে ম্যানুয়ালি composer requireসূক্ষ্ম কাজের সাথে নির্ভরতা যুক্ত করে। মার্জ অ্যাপ্রোচটি ড্রুপাল-মার্জ-প্লাগইনটির সাথেও কাজ করে এবং আমি এটি আমার ড্র্যাশ মেক কাজের প্রবাহের জন্য ব্যবহার করি।

composer config repositories.drupal composer https://packages.drupal.org/8
composer require mile23/drupal-merge-plugin
composer update

আপডেট 2016.06.22

আমি ড্রশ মেক ব্যবহার করে একটি সমস্যায় পড়েছি, যা সেমেভার ব্যবহার করে traditionalতিহ্যবাহী ড্রুপাল সংস্করণ ট্যাগ এবং drupal.org প্যাক্যাগিস্ট ইউআরএল যুক্ত করেছে। সে লক্ষ্যে, আমাকে https://packagist.drupal-composer.org এ স্থিতিশীল প্যাকেজিস্ট ব্যবহার করতে স্যুইচ করা দরকার , যা এখনও ট্র্যাডিশনাল ড্রুপাল সংস্করণ ট্যাগগুলিকে সমর্থন করে।

আরও মনে রাখবেন যে বিল্ড সার্ভার বা মেশিনের একটি সুরকার আপডেট (বা প্রয়োজন) করতে অত্যধিক পরিমাণে মেমরি প্রয়োজন, যা একই পরিস্থিতিতে বিকাশ মেশিনে রচয়িতা আপডেট চালানো আপনার বিল্ড প্রক্রিয়াতে সম্ভব নয় এমন সমস্ত পরিস্থিতিতে প্রয়োজনীয়।

আপডেট 2016.09.23

2018.03.30 আপডেট করুন

  • একটি আপ ভোট লক্ষ্য করা। এটি মোটামুটি পুরানো তাই আরও সাম্প্রতিক বিকাশের বিষয়ে স্পষ্ট করার সিদ্ধান্ত নিয়েছে এবং সুরকারের সাথে সরাসরি আপনার সাইট সেট আপ করার পরে যেহেতু কিছুক্ষণের জন্য ড্রশ মেক করা হয়েছে (দুঃখজনকভাবে) অবহেলা করা হয়েছে।

1
মডিউলগুলি ডাউনলোড এবং ইনস্টল করতে আমি এখনও ড্রশ ব্যবহার করতে অভ্যস্ত, তবে এটি সম্পূর্ণ সুরকার দ্বারা প্রতিস্থাপন করা হবে?
নিওগ্রাফ 4৪৪

এইভাবে এখন দ্রুপালকি এটি করছেন, তবে এর আগে আপনি সরাসরি মার্জ প্লাগইনটি ব্যবহার করতে পারেন। প্যাচ আমি drupalci লিখেছেন প্রাথমিকভাবে ছিল drupal.org/files/issues/2597778-composer-contrib-18.patch । এটি প্রতিশ্রুতিবদ্ধ ছিল, তবে এখন আর কোড বেসে নেই কারণ এটি প্যাকেজিস্ট ব্যবহার করতে এবং সুরকার আইরিক থেকে সমস্ত কিছু করা সহজ simp আমি ট্র্যাভিসিসিআই দিয়েও নিম্নলিখিতগুলি করি: cgit.drupalcode.org/xero/tree/.travis.yml#n40 । এটি আপনার কাজের প্রবাহের উপর নির্ভর করবে।
mradcliffe

সুরকারের সাথে তৃতীয় পক্ষের লাইব্রেরিগুলির জন্য এখানে সম্পদ প্যাকেগিস্ট সম্পর্কে ব্লার্ব যুক্ত করার উপযুক্ত হতে পারে। এই পদ্ধতিটি বেশ কয়েকটি দ্রুপাল ডিস্ট্রো দ্বারা গ্রহণ করা হয়েছে এবং বেশ কয়েকটি অবদানকারী মডিউল এখন এটি ব্যবহার করছে। আমি এই সমাধানটি সরকারীকরণের জন্য কেবলমাত্র কিছু ডকুমেন্টেশন অবদান রেখেছি drupal.org/docs/develop/used-composer/… এবং drupal.org/docs/develop/used-composer/…
জেমস উইলসন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.