সুরকার ইনস্টল করার পথটি কীভাবে নির্দিষ্ট করবেন?


95

আমার এই সংজ্ঞা আছে:

{
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "symfony/sfGuardPlugin",
                "version": "4.0.2",
                "dist": {
                    "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
                    "type": "tar"
                }
            }
        }
    ],
    "require": {
        "symfony/sfGuardPlugin": "4.0.*"
    }
}

আমি সিমফনি 1 ব্যবহার করছি এবং আমি সেগুলি ইনস্টল করতে চাই plugins/sfGuardPlugin/। আমি এটি কীভাবে নির্দিষ্ট করব?

উত্তর:


143

দেখে মনে হচ্ছে আপনি vendorদিরটিকে অন্য কোনও কিছু হিসাবে সংজ্ঞায়িত করতে পারেন ( pluginsআপনার ক্ষেত্রে):

{
    "config": {
        "vendor-dir": "plugins"
    }
}

তারপরে, আপনি প্যাকেজের নামটির পুনরায় নামকরণ করতে পারেন যাতে কোনও স্তরের অভ্যন্তরে না থাকে, যেমন:

        "package": {
            "name": "sfGuardPlugin",

সুতরাং, আপনার composer.jsonদেখতে এইরকম হওয়া উচিত:

{
    "config": {
        "vendor-dir": "plugins"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "sfGuardPlugin",
                "version": "4.0.2",
                "dist": {
                    "url": "http://plugins.symfony-project.org/get/sfGuardPlugin/sfGuardPlugin-4.0.2.tgz",
                    "type": "tar"
                }
            }
        }
    ],
    "require": {
        "sfGuardPlugin": "4.0.*"
    }
}

সম্পাদনা করুন

এই কনফিগারেশনটি ব্যবহার করে, আপনি পাথ পাবেন (যা অবশ্যই সিম্ফনির পক্ষে ভাল নয়):

প্লাগইন / এসএফগুয়ার্ডপ্লুগিন / এসএফগুয়ার্ডপ্লাগিন -৪.০ /

আমি এটির সাথে একযোগে কাজ পেয়েছি composer.json:

{
    "config": {
        "vendor-dir": "plugins"
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "sfGuardPlugin",
                "version": "4.0.2",
                "source": {
                    "url": "http://svn.symfony-project.com/plugins/sfGuardPlugin/",
                    "type": "svn",
                    "reference": "branches/1.3/"
                }
            }
        }
    ],
    "require": {
        "sfGuardPlugin": "4.0.*"
    }
}

ভাল, আমি কীভাবে এটি কোনওভাবে তৈরি করতে পারি যাতে এক্সট্রাক্ট করা ফোল্ডারটি এখনকার মতো গভীরভাবে না যায়: plugins/sfGuardPlugin/sfGuardPlugin-4.0.2/পরিবর্তে আমি চাই plugins/sfGuardPlugin?
টাওয়ার

হ্যাঁ, এটা দেখেছি। আমি অন্য ধরণের (পরিবর্তে tar) দিয়ে চেষ্টা করছি ।
j0k

এটি ভালভাবে কাজ করে - সুতরাং তাদের এখনও একটি সংগ্রহশালা রয়েছে :)
টাওয়ার

4
কেবলমাত্র নির্দিষ্ট কিছু প্যাকেজের জন্য বিক্রেতা দির নির্দিষ্ট করার উপায় এবং অন্যকে ডিফল্ট হিসাবে ছেড়ে দেওয়ার কোনও উপায় আছে কি?
mr1031011

4
এটি একটি দুর্দান্ত এবং গবেষণামূলক উত্তর, তবে অ্যাডামের ভি
looseিলে

28

আপনি সুরকার / ইনস্টলারগুলিও ব্যবহার করতে পারেন , "symfony1- প্লাগইন" প্যাকেজ ধরণের একাধিক কাঠামো রচয়িতা গ্রন্থাগার ইনস্টলার। সিমফনি 1.4 (lib / বিক্রেতার মধ্যে) এবং (/ প্লাগইন) ইন প্লাগইন উভয়ই ইনস্টল করার জন্য এটি আমার সুরকার.জসন ফাইলটির মতো দেখাচ্ছে what

{
    "config": {
        "vendor-dir": "lib/vendor"
    },
    "repositories": {
        "symfony": {
            "type": "package",
            "package": {
                "name": "symfony/symfony1",
                "version": "1.4",
                "dist": {
                    "url": "https://github.com/symfony/symfony1/zipball/1.4",
                    "type": "zip"
                }
            }
        },
        "sfResquePlugin" : {
            "type": "package",
            "package": {
                "name": "devpips/sfResquePlugin",
                "type": "symfony1-plugin",
                "version": "0.1",
                "dist": {
                    "url": "https://github.com/devpips/sfResquePlugin/zipball/master",
                    "type": "zip"
                }
            }
        }
    },
    "require": {
        "composer/installers": "dev-master",
        "symfony/symfony1": "1.4",
        "devpips/sfResquePlugin":"0.1"
    }
}

আমি দেখতে পাচ্ছি না যে এটি কোনও বিষয়কে কীভাবে নির্দেশ করবে /plugins- আপনি কি বিস্তারিত ব্যাখ্যা করতে পারেন?
আইজাক লুবো

@ আইসাকলুবো, এটি composer-installersপ্যাকেজ দ্বারা সম্পন্ন হবে , যেমন symfony1সেখানে একটি প্লাগইন রয়েছে :) Symfony1Installer.php দেখুন
স্পিরিট

11

COMPOSER_VENDOR_DIRপরিবেশের পরিবর্তনশীল দেখুন ।

এই ভেরটি সেট করে আপনি কম্পোজারকে বিক্রেতা ছাড়া অন্য কোনও ডিরেক্টরিতে নির্ভরতা ইনস্টল করতে পারবেন।

আপনি যেমন কোনও নির্দিষ্ট পরিবেশ যেমন ভ্যাগ্রেট বা ডকারে ওভাররাইড করতে চান সে ক্ষেত্রে সহায়ক হতে পারে যেখানে আপনি এটি কোনও ভাগ করা ফোল্ডার / ভলিউমে থাকতে চান না।

এবং হিসাবে J0k বললেন, আছে vendor-dirমধ্যে configবিভাগেcomposer.json

বিক্রেতার কাছে ডিফল্ট। আপনি চাইলে আলাদা ডিরেক্টরিতে নির্ভরতা ইনস্টল করতে পারেন। Home HOME এবং ~ আপনার হোম ডিরেক্টরি ডিরেক্টরি বিক্রেতার-dir এবং নীচে সমস্ত * -dir বিকল্প দ্বারা প্রতিস্থাপন করা হবে।

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