Wie ändere ich den Standardkomponentenordner von bower?

475

Ich mache ein neues Projekt, das Bower von Twitter verwendet. Ich habe eine erstellt component.json, um alle meine Abhängigkeiten wie jquery aufrechtzuerhalten. Dann bower installstarte ich das installiert alles in einem Ordner namens components. Aber ich muss die Komponenten in einem anderen Ordner installieren, z public/components.

Ich habe versucht, meine components.json in Folgendes zu bearbeiten:

{
  "name": "test",
  "version": "1.0.0",
  "directory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

oder:

{
  "name": "test",
  "version": "1.0.0",
  "componentsDirectory": "public/",
  "dependencies": {
    "jquery": "*"
  }
}

wie in https://github.com/twitter/bower/pull/94 gezeigt, aber es funktioniert nicht.

Adam Ramadhan
quelle

Antworten:

930

Erstellen Sie eine Bower-Konfigurationsdatei.bowerrc im Projektstamm (im Gegensatz zu Ihrem Home-Verzeichnis) mit folgendem Inhalt:

{
  "directory" : "public/components"
}

Führen Sie bower installerneut aus.

Adam Ramadhan
quelle
4
Ich Changelog kann ich nur sehen The value of the json property from .bowerrc is no longer usedund ich denke, alles ist in Ordnung mit "directory"Eigentum. Recht? github.com/bower/bower/blob/master/CHANGELOG.md
Sergey Kishenin
11
Das funktioniert bei mir nicht. Funktioniert in .bowerrc, aber nicht in bower.json. Dies scheint eine solche Grundfunktion zu sein ...
Elliottottregan
148
Ich bin gespannt, warum dies nicht in die Datei bower.json aufgenommen wird. Vor allem, wenn es sich sowieso um eine Pro-Projekt-Einstellung handelt.
Hayden
8
Basierend auf den Dokumenten muss es sich in .bowerrc befinden, nicht in bower.json. Seltsam ... bower.io/#custom-install-directory
joemfb
20
Um in Windows eine Datei zu erstellen, die mit "." Beginnt, erstellen Sie einfach die Datei mit einem abschließenden ".". Mit anderen Worten, nennen Sie es einfach ".bowerrc".
PeteK68
76

Neben der Bearbeitung .bowerrczum Einrichten Ihres Standardinstallationspfads können Sie auch benutzerdefinierte Installationspfade für verschiedene Dateitypen einrichten.

Es gibt ein Knotenpaket namens bower-installer , das einen einzigen Befehl zum Verwalten alternativer Installationspfade bereitstellt.

Lauf npm install -g bower-installer

Richten Sie Ihre bower.json ein

{
  "name" : "test",
  "version": "0.1",
  "dependencies" : {
    "jquery-ui" : "latest"
  },
  "install" : {
    "path" : {
      "css": "src/css",
      "js": "src/js"
    },
    "sources" : {
      "jquery-ui" : [
        "components/jquery-ui/ui/jquery-ui.custom.js",
        "components/jquery-ui/themes/start/jquery-ui.css"
      ]
    }
  }
}

Führen Sie den folgenden Befehl aus: bower-installer

Dies installiert components/jquery-ui/themes/start/jquery-ui.csszu ./src/css, etc

lfender6445
quelle
4
Das sieht vielversprechend aus, aber das bower_componentsVerzeichnis wird noch erstellt und gefüllt. :(
Ben
Welche Version der Laube?
lfender6445
scheint die Art des Pakets zu sein. Sie können hier ein Problem unter github.com/blittle/bower-installer/issues öffnen oder ein Bash-Skript schreiben, um das Verzeichnis nach der Installation zu entfernen.
lfender6445
1
Ich denke, es macht keinen Sinn. Ich möchte kein Paket, das immer noch das vollständige Git-Repo und die Abhängigkeiten herunterlädt und dann nur bestimmte Dateien für mich kopypastiert ... Ich kann selbst Strg + C drücken. Ich hoffte, dass es nur bestimmte Dateien für mich herunterladen wird.
Alendorff
Ja, ich höre dich. In diesem Fall bin ich nur eine .bowerrc und zeige auf public / bower oder public / vendor, um das Projekt einfach zu halten.
lfender6445
61

Ich hatte das gleiche Problem unter Windows 10. Dies hat mein Problem behoben

  1. Löschen Sie bower_componentsin Ihrem Stammordner
  2. Erstellen Sie eine .bowerrcDatei im Stammverzeichnis
  3. Schreiben Sie diesen Code in die Datei {"directory" : "public/bower_components"}
  4. Führen Sie a bower install

Der Ordner bower_components sollte jetzt in Ihrem öffentlichen Ordner angezeigt werden

Tim Anishere
quelle
23

Etwas Erwähnenswertes ...

Wie oben von anderen Mitwirkenden erwähnt, wird eine .bowerrcDatei mit dem JSON verwendet

{ "directory": "some/path" }

ist erforderlich - Beim Erstellen dieser Datei kann es jedoch unter Windows zu Problemen kommen. Wenn Sie in Windows aufgefordert werden, einen " Dateinamen " hinzuzufügen , verwenden Sie einfach einen Texteditor / eine IDE wie Notepad ++.

Fügen Sie den JSON zu einer unbenannten Datei hinzu, speichern Sie ihn als .bowerrc - los geht's!

Wahrscheinlich eine einfache Annahme, aber ich hoffe, dies erspart anderen die unnötigen Kopfschmerzen :)

Cody
quelle
18
Um in Windows eine Datei zu erstellen, die mit "." Beginnt, erstellen Sie einfach die Datei mit einem abschließenden ".". Mit anderen Worten, nennen Sie es einfach ".bowerrc".
PeteK68
Sie können es auch mit Git Bash tun, geben Sie einfach ein:echo >> .bowerrc
Leandro RR
7

Versuchen Sie, die components.jsonDatei im publicVerzeichnis Ihrer Anwendung und nicht im Stammverzeichnis abzulegen, und führen Sie sie dann erneut aus bower install. Versuchen Sie dies in Ihrem App-Ausgangsverzeichnis:

cp components.json public
cd public
bower install
Hagope
quelle
1
Ja, das kann ein Weg sein, gibt es einen legitimen Weg, es zu tun? aber ich zähle das immer noch als Antwort.
Adam Ramadhan
2
Sie könnten ein Bash-Skript schreiben, bower.shum das Verzeichnis, in das Sie installieren möchten, wie "public-components.json",
voranzustellen
2
Beide Antworten klingen super hackig, definitiv nicht wünschenswert
Jay
-3

Hallo, ich bin das gleiche Problem und löse diese Wege.

Windows User und vs können keine .bowerrc-Datei erstellen.

in cmd gehe in einen beliebigen Ordner

Installieren Sie beispielsweise alle Pakete, die die .bowerrc-Datei enthalten

bower install angular-local-storage

Dieses Plugin enthält eine .bowerrc-Datei. Kopieren Sie das und gehen Sie zu Ihrem Projekt und fügen Sie diese Datei ein.

und in Visual Studio - Solution Explorer - alle Dateien anzeigen und die gesehene .bowerrc-Datei des Projekts einschließen

Ich löse diese Wege :)

Abdullah SARGIN
quelle
Sie können Cygwinoder CmderTerminal verwenden, um eine .bowerrcDatei zu erstellen .
Francis.TM
4
Erstellen Sie einfach die Datei mit einem beliebigen Namen, öffnen Sie eine PowerShell oder Eingabeaufforderung und benennen Sie sie um.
TrueWill
Sie können eine Punktdatei in Windows erstellen, indem Sie den Dateinamen als ".name" angeben. - immer noch nicht viele Leute wissen das nach so vielen Jahren, in denen dies verfügbar ist :)
Alex Paven