Wie installiere ich jQuery mit Composer?

Lesezeit: 5 Minuten

Benutzer-Avatar
ChocoEntwickler

Ich konnte Repositories 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 der Dokumentation genommen, aber ich konnte nicht viele andere Typen finden. Zum Beispiel muss ich jQuery installieren, aber ich weiß 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?

BEARBEITEN: Ich füge die volle hinzu Lösung 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"
                }
            }
        }
    ]

  • Derzeit verwende ich eine CDN, aber ich möchte auch jQuery by Composer oder Git-Submodule erhalten. Ich mag die Idee nicht, Bibliotheken von Drittanbietern in meine Repos aufzunehmen. Übrigens, JS-Popularität auf GitHub wird wegen all dieser JS-Copypasta überbewertet.

    – Elnur Abdurrakhimov

    26. Juli 2012 um 7:36 Uhr


  • 2013 ist jetzt fast vorbei und es gibt immer noch kein jquery/jquery-Paket. Das ist wirklich seltsam.

    – Sliq

    13. Oktober 2013 um 13:36 Uhr

  • Schokolade! Hallo! Jetzt haben Sie die jQuery js-Datei im Herstellerverzeichnis und was nun? Müssen Sie src manuell zu dieser Datei hinzufügen oder muss der Komponist sie selbst laden? Ich versuche, jQuery automatisch zu laden und in meine Website einzubinden. Ist das möglich oder verstehe ich nicht, wofür Composer verwendet wird?

    – Sharikov Vladislav

    27. April 2014 um 21:27 Uhr

  • @SharikovVladislav Composer dient zum Verwalten von Abhängigkeiten (dh zum Finden der richtigen Versionen, zum Überprüfen, ob keine Konflikte vorhanden sind, zum Herunterladen von allem usw.). Wie Sie diese Abhängigkeiten verwenden, ist ein separates Thema. Wenn es sich um PHP-Abhängigkeiten handelt, werden sie normalerweise automatisch geladen, und Sie müssen lediglich Objekte erstellen oder Funktionen direkt aufrufen. Wenn es sich um JS-Dateien oder andere Assets handelt, müssen Sie den Pfad zu der Datei in Ihrer Liste der zu kompilierenden/minimierenden Assets hinzufügen, oder wenn Sie keine Minifizierung verwenden, erstellen Sie einfach einen Symlink zu der Datei in Ihrem Webroot und fügen Sie die hinzu src manuell.

    – ChocoDeveloper

    30. April 2014 um 18:36 Uhr

  • “… oder wenn Sie keine Verkleinerung verwenden, erstellen Sie einfach einen Symlink …”. Das würde bedeuten, dass Sie Ihr Vendors-Verzeichnis unter Ihrem Web-Root haben müssten. Ist das nicht unsicher?

    – spinus

    12. November 2014 um 8:09 Uhr

Tatsächlich gibt es einen einfacheren Weg, jQuery zu installieren, geben Sie einfach Folgendes ein:

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

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

  • Dies hat nichts mit der Paketverwaltung der Javascript-Komponenten zu tun, oder?

    – CMCDragonkai

    16. November 2013 um 2:16 Uhr

  • components/jquery ist ein Shim-Repository für jQuery und dasselbe Repo funktioniert mit Bower, Component und Composer

    – César

    16. November 2013 um 3:58 Uhr

  • Fertig composer require components/jquery ohne Version und funktionierte wie ein Zauber. Es fügte mir die Zeile hinzu "components/jquery": "^2.1" zum .json und fuhr fort, es zu installieren und in das zu kleben .lock – Danke für components/* Tipp!

    – Xavi Montero

    18. August 2015 um 16:07 Uhr

Benutzer-Avatar
Nadermann

Das ist einfach ein fehlendes Feature. Es sollte wahrscheinlich eine neue Art von dist geben, die nur eine einzelne Klartextdatei ist, die heruntergeladen und unverändert gelassen werden kann. Bitte reichen Sie eine Feature-Anfrage im GitHub Issue Tracker ein: https://github.com/composer/composer/issues/

BEARBEITEN :

Das Merkmal tatsächlich existiert wurde aber nicht dokumentiert.

"type": "file"

  • Danke, ich habe dieses Problem gerade gemeldet: github.com/composer/composer/issues/946

    – ChocoDeveloper

    26. Juli 2012 um 13:52 Uhr

  • Stof kommentierte das Problem, die Funktion existiert. Ich habe Ihre Antwort bearbeitet.

    – ChocoDeveloper

    27. Juli 2012 um 1:30 Uhr

  • Ich werde das versuchen. Ich denke, was mir fehlt, ist eine Möglichkeit, die Dateien im Webverzeichnis abzulegen. Das Erstellen eines Bundles nur für Assets ist ein Overkill. Es sollte möglich sein, js-Dateien direkt in das Webverzeichnis zu installieren.

    – Jens

    1. Mai 2013 um 22:39 Uhr

  • Wie funktioniert das? Ich möchte nur, dass Composer eine einzelne Textdatei über HTTP herunterlädt? Wo gebe ich alles an?

    – CMCDragonkai

    16. November 2013 um 2:09 Uhr

  • @CMCDragonkai Ich habe meinen Beitrag bearbeitet, um die vollständige Lösung hinzuzufügen

    – ChocoDeveloper

    30. April 2014 um 18:25 Uhr

Benutzer-Avatar
spinus

Wie bereits skizziert, besteht Teil eins der Lösung darin, Ihre eigenen Repositories und die zu definieren "type: ": "file" Repository-Definitionsoption. Aber ein nachfolgendes Problem besteht darin, den Composer dazu zu bringen, die JQuery an der gewünschten Stelle abzulegen. So wie es aussieht, scheint Composer darauf beschränkt zu sein, Abhängigkeitsquellen unter herunterzuladen vendor-dir (was ärgerlich ist, aber wahrscheinlich mit den Anforderungen zum automatischen Laden zusammenhängt). Die allgemeine Lösung für diese Einschränkung besteht darin, ein Composer-Plugin zu schreiben, das sie überwindet. Scheint ein paar Plugins zu sein, die dies verwalten können. Die einfachste und leichteste Lösung, die ich gefunden habe, ist PHP Composer-Asset-Manager, das der Verwaltung von Nicht-PHP/Composer-“Assets” gewidmet ist. Es hat jedoch mindestens eine Einschränkung darin, dass Änderungen, die das Plugin vornimmt, nicht vom Composer verwaltet/erkannt werden. Noch brauchbar.

Hier ist eine volle composer.json So installieren Sie 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": "*"
      }
    }
  }
}

  • Achtung: Es ist erwähnenswert, dass die Paketnamen, wie sie vom Asset Manager-Plug-in verarbeitet werden, alle sind Kleinbuchstaben. Wenn Sie Pakete in Großbuchstaben in „require“ verwendet haben, werden diese niemals vom Plugin abgeglichen, selbst wenn Sie sie in seinem Abschnitt „packages“ auf die gleiche Weise schreiben.

    – Gabriel

    18. Dezember 2014 um 22:35 Uhr

  • Beachten Sie auch Ereignis-Hooks – getcomposer.org/doc/articles/scripts.md. Ich benutze diese jetzt. KUSS.

    – spinus

    18. Mai 2015 um 5:22 Uhr

Sie können jquery installieren, indem Sie npm so verwenden,

npm install jquery

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

Benutzer-Avatar
Snoob-Hund

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

  • Bower ist bereits veraltet und wird nicht mehr gepflegt – keine gute Wahl im Jahr 2018.

    – rob006

    19. Oktober 2018 um 7:59 Uhr

  • @ rob006 was soll man stattdessen verwenden? Webpaket ?

    – Snoob-Hund

    19. Oktober 2018 um 13:16 Uhr


  • Auf der Website von Bower gibt es Empfehlungen – wahrscheinlich Garn und Webpack.

    – rob006

    19. Oktober 2018 um 13:20 Uhr

  • Bower ist bereits veraltet und wird nicht mehr gepflegt – keine gute Wahl im Jahr 2018.

    – rob006

    19. Oktober 2018 um 7:59 Uhr

  • @ rob006 was soll man stattdessen verwenden? Webpaket ?

    – Snoob-Hund

    19. Oktober 2018 um 13:16 Uhr


  • Auf der Website von Bower gibt es Empfehlungen – wahrscheinlich Garn und Webpack.

    – rob006

    19. Oktober 2018 um 13:20 Uhr

1333220cookie-checkWie installiere ich jQuery mit Composer?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy