webentwicklung-frage-antwort-db.com.de

Wie registriere ich ein lokales Git-Paket in Bower?

Wie kann ich ein lokales Git-Paket in Bower registrieren?

Meine aktuelle component.json ist wie folgt

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "Twitter/bootstrap": "2.1.1"
  }
}

Ich möchte jedoch auch ein Paket hinzufügen, das ich unter C:/mypackage Erstellt habe. Hierbei handelt es sich um ein Git-Repository mit getaggten Versionen. Wenn ich bower install --save C:/mypackage Mache, wird es ordnungsgemäß zum Projekt hinzugefügt, aber nicht zu meiner component.json.

Ich versuche bower register mypackage C:/mypackage, Aber es gibt mir weiter

bower error Incorrect format

Was mache ich falsch?

61
user391986

Option 1: Registrierung der öffentlichen Laube

Bower wurde hauptsächlich entwickelt, um öffentlichen (clientseitigen) Code "ohne Meinung" weiterzugeben. Der primäre Anwendungsfall ist ein öffentlich zugängliches Repository (auf GitHub) mit dem Namen und der Git-Repository-URL register d. Ich habe das einfach selbst gemacht:

bower register linksoup git://github.com/automatonic/linksoup

Dies sagt dem Bower-Server nur, dass Sie, wenn Sie install linksoup Gehen und den Code im git://github.com/automatonic/linksoup - Repository abrufen und in das component - Verzeichnis des lokalen Projekts ablegen müssen.

Wenn Sie dies tun möchten, richten Sie einfach ein Repository auf github/etc. Ein. Verschieben Sie Ihren Code dorthin und dann register mit den resultierenden Repository-Informationen.

Option 2: Private Abhängigkeit

Es gibt viele Gründe, Ihren Code nicht in einem öffentlich zugänglichen Repository zu veröffentlichen. Es kann sein, dass es sich nicht um Open Source usw. handelt. Wenn Ihr mypackage - Code nicht öffentlich sein soll, sollten Sie ihn wahrscheinlich nicht auf dem öffentlichen Laubserver register veröffentlichen Wenn Sie ein lokales Verzeichnis register könnten, würde es nur auf Ihrem Computer funktionieren ... was den Zweck der Freigabe des Codes über Bower zunichte macht.

Wenn Sie nur wollen, dass Bower eine lokale, private Abhängigkeit verwaltet, dann werde ich die Blockheads -Lösung durchgehen:

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "Twitter/bootstrap": "2.1.1",
    "mypackage": "file:///path/to/mypackage/.git"
  }
}

Dies bedeutet nur, dass myprojectmypackage benötigt und zum Abrufen Git Clone verwendet. Ich vermute, dass dies alles verwenden kann, was Git verstehen kann (einschließlich lokaler Repositories). Sie sollten jedoch beachten, dass dies für andere Benutzer, die an diesem Code arbeiten und nicht auf Ihren lokalen Pfad zugreifen können, zu Problemen führen kann.

Beste Annahme

Es sieht für mich so aus, als hätten Sie vielleicht angenommen, dass bower register Eine lokale Operation war (die Bower mitteilt, wie man eine Abhängigkeit über eine Art lokales Register findet). Soweit ich das beurteilen kann, handelt es sich hier nur um eine entfernte und öffentliche Registrierung, weshalb dies nicht unterstützt wird.

Möglicherweise suchen Sie auch nach einer Möglichkeit, etwas wie Verknüpfung mit npm zu tun. Das heißt, Sie müssen an einem Abhängigkeitsmodul arbeiten, ohne dass Ihr Entwicklungszyklus immer eine Veröffentlichung enthält.

Ein kleines Detail darüber, wie viele Personen involviert sind und was Sie erreichen wollten, würde eine gezieltere Antwort ermöglichen.

71
el2iot2

Sie können ein beliebiges Git-Repository wie folgt hinzufügen:

{
  "name": "myproject",
  "version": "1.0.0",
  "dependencies": {
    "jquery": "1.8.0",
    "Twitter/bootstrap": "2.1.1",
    "myrepo":"git://myrepo.com/myrepo"
  }
}
53
blockhead

Sie können bower link:

Die Link-Funktionalität ermöglicht Entwicklern das einfache Testen ihrer Pakete. Das Verknüpfen erfolgt in zwei Schritten.

Mit bower link in einem Projektordner erstellt eine globale Verknüpfung. Dann, in einem anderen Paket, bower link <pkg> erstellt einen Link im Komponentenordner, der auf den zuvor erstellten Link verweist.

Dies ermöglicht ein einfaches Testen eines Pakets, da Änderungen sofort wirksam werden. Bitte beachten Sie, dass Bower die verknüpften Paketabhängigkeiten nicht abruft.

Bower überschreibt den Link bei der Installation/Aktualisierung.

33
Ali Shakiba

Die große Idee mit bower ist, die Abhängigkeiten Ihrer Projekte einfach zu teilen. Daher sollte die Verwendung des lokalen Repos auf das Testen beschränkt sein.

Sobald Sie das verstanden haben, sollten Sie wissen, dass es nicht unbedingt erforderlich ist, Ihr Paket zu register, um es als Abhängigkeit zu verwenden.

Dies liegt an der Tatsache, dass die Laubenabhängigkeit entweder eine Version, einen Ordner oder ein Paket angeben kann. Sie können also das lokale Repository verwenden .

Als Laubenpaket definieren

Zuerst müssen Sie definieren Sie Ihre Abhängigkeit als Laubenpaket :

# create the bower package
cd /path/to/you-need-me
bower init
# answer questions…

Als Projektabhängigkeit hinzufügen

Bearbeiten Sie dann in Ihrem Hauptprojekt, das die you-need-me - Abhängigkeit benötigt, die bower.json - Datei, um sie hinzuzufügen (oder zu erweitern):

  "dependencies": {
    …
    "you-need-me":  "file:///path/to/you-need-me/.git/"
    "you-need-me-windows":  "C:/path/to/you-need-me-windows/.git/"
  }

Sie geben also keine Version an, sondern einen lokalen git -Endpunkt, d. H. das Unterverzeichnis .git/.

Installieren Sie die Abhängigkeit

Im man-Projekt installiere bower-Abhängigkeiten mit:

cd /path/to/main-project/
bower install

Failure

bower you-need-me#*              ENOTFOUND Package /path/to/you-need-me/ not found

Überprüfen Sie erneut Ihren Pfad und verweisen Sie auf das Verzeichnis .git/ Ihrer Abhängigkeit.

Erfolg

Sie sollten etwas bekommen wie:

bower you-need-me#*             not-cached file:///path/to/you-need-me/.git/#*
bower you-need-me#*                resolve file:///path/to/you-need-me/.git/#*
bower you-need-me#*               checkout master
bower you-need-me#*               resolved file:///path/to/you-need-me/.git/#b18c753c6f
bower you-need-me#*                install you-need-me#b18c753c6f

Schreiben Sie einen Blog-Eintrag darüber: Testen Sie bower.json lokal, bevor Sie das Paket registrieren .

23
Édouard Lopez