2013-10-01 9 views
27

Ich fange gerade an, Komponist zu benutzen, ich weiß so wenig darüber und habe ein wenig Erfahrung mit der Entwicklung von Webanwendungen.Wie wird der Bootstrap nach dem Herunterladen über Composer eingerichtet?

Ich hatte gerade einen Spaziergang durch Nettuts+ Tutorial, also habe ich eine grundlegende Frage über Komponisten.

{ 
    "require": { 
    "laravel/framework": "4.0.*", 
    "way/generators": "dev-master", 
    "twitter/bootstrap": "dev-master", 
    "conarwelsh/mustache-l4": "dev-master" 
    }, 
    "require-dev": { 
    "phpunit/phpunit": "3.7.*", 
    "mockery/mockery": "0.7.*" 
    }, 
    "autoload": { 
    "classmap": [ 
     "app/commands", 
     "app/controllers", 
     "app/models", 
     "app/database/migrations", 
     "app/database/seeds", 
     "app/tests/TestCase.php" 
    ] 
    }, 
    "scripts": { 
    "post-update-cmd": "php artisan optimize" 
    }, 
    "minimum-stability": "dev" 
} 

Wenn ich mein Setup composer.json wie oben, nach composer install --dev Ausführung, wie bekomme ich Bootstrap für im Laravel Projekt zur Verfügung zu sein?

Ich meine, ich kann sehen, das Bootstrap-Paket in das Herstellerverzeichnis heruntergeladen wird. Bevor ich nur Bootstrap von seiner offiziellen Website heruntergeladen habe und die Dateien manuell in das öffentliche Verzeichnis von Laravel gestellt habe, aber was ist zu diesem Zeitpunkt der richtige Weg? Kann ich die Bootstrap-Dateien dort lassen, wo sie sind, weil ich das Bootstrap-Paket regelmäßig auf die neueste Version aktualisieren möchte?

Danke.

Antwort

21

Wir haben Handwerker Befehl, um die Assets (CSS, JS, ..) zu veröffentlichen. So etwas sollte funktionieren.

Ich bin mir nicht sicher über den Pfad .. Aber das sollte funktionieren.

+13

... oder 'php artisan asset: veröffentlichen --path =" vendor/twitter/bootstrap/dist/"bootstrap' – madpoet

+1

Kann ich das in meine composser.json setzen – briankip

+0

@briankip Ja können Sie. Bitte wenden Sie sich an Antonio Carlos. Alternativ können Sie auch gulp und sass/scss verwenden. – brainless

17

Wie das Tutorial sagt, haben Sie es zu einem öffentlichen Verzeichnis kopieren:

cp vendor/twitter/bootstrap/docs/assets/js/html5shiv.js public/js/html5shiv.js 
cp vendor/twitter/bootstrap/docs/assets/js/bootstrap.min.js public/js/bootstrap.min.js 

EDIT:

Sie haben sie wirklich kopieren, weil Ihr Vermögen Dateien im öffentlichen Ordnern liegen sollten nur und Composer dreht sich alles um Putting-Pakete auf Ihrem Lieferanten-Ordner, die nach außen nicht sichtbar sein muss.

Aber Sie können einen Composer post-install-cmd erstellen:

{ 
    "scripts": { 
     "post-update-cmd": "MyVendor\\MyClass::postUpdate", 
    } 
} 

Und es diese Dateien für Sie ein Update geschieht jedes Mal machen kopieren. Es kann mit PHP, bash oder einer anderen Sprache geschrieben werden, die Sie auf Ihrem Host ausführen können. Dokumente: http://getcomposer.org/doc/articles/scripts.md.

+0

Nachdem ich _composer update_ verwendet habe, um eine neuere Bootstrap-Version zu erhalten, muss ich sie erneut kopieren, oder ?, dachte ich, ich könnte einen automatischen Vorteil aus der Verwendung von Composer ziehen. – Artisan

+0

Bearbeitet, um zu klären. –

+6

Warum nicht einfach symbol den Hersteller-Ordner für die installierte Bibliothek von der Öffentlichkeit verknüpfen ... Dann verwenden Sie es wie eine Referenz im Vergleich zum Kopieren. – LeviXC

3

Symlink einfach den Ordner sagte wie oben durch LeviXC:

{ 
    "scripts": { 
     "post-update-cmd": "ln -sf vendor/twitter/bootstrap/dist/ public/vendor/bootstrap/" 
    } 
} 

oder mehrere Befehle:

{ 
    "scripts": { 
     "post-update-cmd": [ 
      "php artisan optimize", 
      "ln -sf vendor/twitter/bootstrap/dist/ public/vendor/bootstrap/" 
     ] 
    }, 
} 
+0

Das funktioniert nicht für mich, es erstellt einen Symlink zu einem Unterordner, d. H. Es versucht, mit 'public/static/vendor/twbs/bootstrap/dist' zu verknüpfen. Aber wenn ich '../../ vendor ...' benutze, wird ein Fehler zurückgegeben. – DisgruntledGoat

7

gerade realisiert, dass php artisan asset:publish --path="vendor/twbs/bootstrap/dist/" bootstrap oder php artisan vendor:publish --path="vendor/twbs/bootstrap/dist/" bootstrap funktionieren nicht mehr.

Was für mich arbeitete, ist die Bearbeitung des Komponisten.json post-update-cmd nach dem unter scripts, hinzuzufügen:

"scripts": { 
     "post-update-cmd": [ 
      "php artisan optimize", 
      "mkdir -p public/bootstrap", 
      "cp -R vendor/twbs/bootstrap/dist/ public/bootstrap/" 
     ]} 
+0

Das hat wunderbar für mich funktioniert! – Ms01

+1

Stellen Sie sicher, dass Sie dies auch zu ** post-install-cmd ** hinzufügen oder es funktioniert nur nach ** Composer Update ** und nicht ** Composer Installation ** –

+1

Für Windows musste ich verwenden, '" wenn nicht existiert public \\ bootstrap mkdir public \\ bootstrap ", " xcopy/s/e Hersteller \\ tubbs \\ bootstrap \\ dist public \\ bootstrap "' – ourmandave

0

Das ist für mich besser arbeitete

"scripts": { 
    "post-update-cmd": [ 
     "mkdir -p html/vendor/", 
     "ln -sfr vendor/twbs/bootstrap/dist html/vendor/bootstrap" 
    ] 
}, 

Das "r" Flagge der Symlink relativiert, so dass auf die reale Ordner zeigt

0

I Ich bin neu bei Laravel und Bootstrap (und benutze sie zusammen) und bin über diesen Thread gestolpert, als ich das gleiche Problem hatte. Ich habe ein neues Laravel Projekt, dann Bootstrap hinzugefügt, indem Sie den folgenden Befehl ausführen aus dem Stammverzeichnis des Laravel Projektes:

% Komponist erfordert TWBs/Bootstrap

Dann meine Ansicht Datei auf, die ich die folgenden Code:

<link href="css/app.css" rel="stylesheet"> 

Es scheint, dass Komponisten (oder Bootstrap) fügt app.css, die die Bootstrap CSS-Dateien enthält (die in der nicht-öffentlichen Anbieter Ordner befinden) Bezug genommen wird. Der Verweis auf app.css konnte hinzugefügt werden, und ich konnte Bootstrap-Komponenten in meiner Ansicht verwenden.

Verwandte Themen