wake-up-neo.com

Wie installiere ich jQuery mit Composer?

Ich konnte Repositorys installieren, die keine composer.json-Datei wie diese haben:

    {
        "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"
            }
        }
    },

Ich habe den Teil "type": "Zip" aus den Dokumenten genommen, aber ich konnte nicht viele andere Typen finden. Ich muss zum Beispiel jQuery installieren, weiß aber nicht, was ich eingeben soll ("js" hat nicht funktioniert).

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

Irgendwelche Ideen?

EDIT: Ich füge die vollständige Lösung hinzu , um @CMCDragonkai zu helfen:

    "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"
                }
            }
        }
    ]
56
ChocoDeveloper

Dies ist einfach eine fehlende Funktion. Es sollte wahrscheinlich einen neuen Typ von dist geben, bei dem es sich lediglich um eine einzige Klartextdatei handelt, die heruntergeladen und unverändert bleiben soll. Bitte reichen Sie eine Funktionsanfrage beim github Problem-Tracker ein: https://github.com/composer/composer/issues/

EDIT: 

Die Funktion existiert tatsächlich wurde aber nicht dokumentiert. 

"type": "file"
34
naderman

Eigentlich gibt es eine einfachere Möglichkeit, jQuery zu installieren. Geben Sie einfach Folgendes ein:

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

Es verwendet Component Installer für Composer und standardmäßig werden alle Assets von Component unter components installiert, können aber angepasst werden. ( siehe Dokumente ).

39
César

Wie bereits erwähnt, besteht der erste Teil der Lösung darin, eigene Repositorys und die Repository-Definitionsoption "type: ": "file" zu definieren. Eine nachfolgende Ausgabe ist jedoch, dass der Komponist die JQuery an die gewünschte Stelle bringt. Composer scheint derzeit auf das Herunterladen der Abhängigkeitsquelle unter vendor-dir beschränkt zu sein (was ärgerlich ist, aber wahrscheinlich mit den Anforderungen für das automatische Laden zusammenhängt). Die allgemeine Lösung für diese Einschränkung besteht darin, ein Composer-Plugin zu schreiben, das es überwindet. Es scheint ein paar Plugins zu sein, die das schaffen. Die einfachste und leichteste Lösung, die ich gefunden habe, ist PHP Composer Asset Manager , die sich mit der Verwaltung von "PHP-Assets" befasst. Es gibt jedoch mindestens eine Einschränkung, dass Änderungen, die das Plugin vornimmt, vom Composer nicht verwaltet/erkannt werden. Noch nutzbar.

Hier ist ein vollständiger composer.json zur Installation von JQuery mit diesem Plugin:

{
  "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": "*"
      }
    }
  }
}
2
spinkus

sie können Jquery installieren, indem Sie npm so verwenden, 

npm install jquery

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

Verwenden Sie npm, yarn oder WebPack anstelle von Composer, sie sind für diese Art von Anforderungen viel besser.

0
snoob dogg