سؤال

لقد تمكنت من تثبيت المستودعات التي لا تحتوي على ملف Composer.json مثل هذا:

    {
        "type": "package",
        "package": {
            "name": "yahoo/yui-compressor",
            "version": "2.0.4",
            "dist": {
                "url": "http://yui.zenfs.com/releases/yuicompressor/yuicompressor-2.4.7.zip",
                "type": "zip"
            }
        }
    },

أخذت "النوع":"zip" من المستندات، لكن لم أتمكن من العثور على العديد من الأنواع الأخرى.على سبيل المثال، أحتاج إلى تثبيت jQuery، لكني لا أعرف ما الذي يجب كتابته ("لم يعمل js").

    {
        "type": "package",
        "package": {
            "name": "jquery/jquery",
            "version": "1.7.2",
            "dist": {
                "url": "http://code.jquery.com/jquery-1.7.2.js",
                "type": "js"
            }
        }
    }

أيه أفكار؟

يحرر:أقوم بإضافة كامل حل لمساعدةCMCDragonkai:

    "require": {
        "vendorname/somefile": "1.2.3",
    },
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "vendorname/somefile",
                "version": "1.2.3",
                "dist": {
                    "url": "http://example.com/somefile.txt",
                    "type": "file"
                }
            }
        }
    ]
هل كانت مفيدة؟

المحلول

هذه ببساطة ميزة مفقودة.من المحتمل أن يكون هناك نوع جديد من التوزيع وهو مجرد ملف نص عادي واحد يتم تنزيله وتركه كما هو.الرجاء تقديم طلب ميزة على أداة تعقب مشكلات github: https://github.com/composer/composer/issues/

يحرر :

الخاصية موجود فعلا ولكن لم يتم توثيقها.

"type": "file"

نصائح أخرى

في الواقع هناك طريقة أسهل لتثبيت jQuery، فقط اكتب:

{
    "require": {
        "components/jquery": "1.9.*"
    }
}

يستخدم مثبت المكونات للملحن وبشكل افتراضي، يتم تثبيت كافة الأصول من المكون ضمن components, ، ولكن يمكن تخصيصها.(انظر المستندات).

كما هو موضح بالفعل، الجزء الأول من الحل هو تحديد المستودعات الخاصة بك و "type: ": "file" خيار تعريف المستودع.لكن هناك مشكلة لاحقة تتمثل في جعل الملحن يضع JQuery في المكان الذي تريده.في الوضع الحالي، يبدو أن مهمة الملحن تقتصر على تنزيل مصدر التبعية ضمن vendor-dir (وهو أمر مزعج ولكنه ربما يتعلق بمتطلبات التحميل التلقائي).الحل العام لهذا القيد هو كتابة مكون إضافي للملحن يتغلب عليه.يبدو أن هناك بعض المكونات الإضافية التي يمكنها إدارة هذا.إن أبسط حل خفيف الوزن وجدته هو PHP مدير الأصول الملحن, ، وهو مخصص لإدارة "الأصول" غير PHP/الملحن.على الرغم من ذلك، هناك قيد واحد على الأقل يتمثل في أن التغييرات التي يجريها المكون الإضافي لا تتم إدارتها/اكتشافها بواسطة الملحن.لا تزال صالحة للاستعمال.

وهنا كامل composer.json لتثبيت JQuery باستخدام هذا البرنامج المساعد:

{
  "name": "foo/bar",
  "require":
  {
    "phpclasses/assets": "*",
     "jquery/jquery": "*"
  },
  "repositories": [
    {
     "type": "composer",
     "url": "http://www.phpclasses.org/"
    },
    {
      "type": "package",
      "package": {
        "name": "jquery/jquery",
        "version": "1.7.2",
        "type": "jquery",
        "dist": {
          "url": "http://code.jquery.com/jquery-1.7.2.js",
          "type": "file"
        }
      }
    }
  ],
  "extra": {
    "assets": {
      "actions": [
        {
          "type": "copy",
          "target": "webroot/js",
          "pattern": "\\.js$"
        }
      ],
      "packages": {
        "jquery/jquery": "*"
      }
    }
  }
}

يمكنك تثبيت jquery باستخدام npm مثل ذلك،

npm install jquery

https://www.npmjs.com/package/jquery

يستخدم npm, yarn أو WebPack بدلاً من Composer، فهي أفضل بكثير بالنسبة لهذا النوع من الاحتياجات.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top