2015-06-19 8 views
14

Ich habe eine index.html Datei. In meiner bower.json Datei habe ich eine Abhängigkeit:schluck Bower wiredep nicht bootstrap.css abholen?

"bootstrap": "~3.3.2" 

In einer Schwall Datei habe ich:

gulp.src('./main.html') 
    .pipe(wiredep({ 
     bowerJson: require('./bower.json') 
    })) 
    .pipe(gulp.dest('./')); 

Wenn ich das tue, sehe ich alle css und js erzeugt werden, aber nicht Siehe die bootstrap.css, die irgendwo im inject enthalten sind, andere Abhängigkeiten sind. Was ist los?

Ich denke, es muss eine einfache Lösung dafür sein? Oder hat Schluck Probleme damit, verglichen mit Grunzen?

Update: Ich bin immer **** bei einem Hardcore-Maven Fanatiker mich geworfen, wie Bower und Knoten im Vergleich zum kotzen und Maven wie nach Bower installieren können, müssen Sie manuell eine bower.json Datei eines Pakets, nachdem es ändern Downloads. Wenn es eine Möglichkeit gibt, bower.json nicht zu ändern, oder eine Möglichkeit, dies in den Build-Prozess zu integrieren, wo kein Entwickler dazu benötigt wird ... bitte updaten!

+0

gleiches Problem, sind Sie in der Lage, diese zu lösen? –

+0

nein. Ist es Schuld oder Bootstrap Schuld? – Rolando

+0

nicht sicher, ich bin immer noch mit dem Problem konfrontiert –

Antwort

6

Nachdem ich die bower.json Datei im Stamm geändert, die ursprünglich auf die folgenden in eine * .Weniger Datei zeigt:

"main": ["dist/css/bootstrap.css"], 

Es funktioniert jetzt.

Hinweis: Ich habe den Eintrag für bootstrap.js entfernt, weil ich es nicht brauche.

+2

Pull-Anfrage an Bootstrap? – Rolando

+0

Ich bin mir nicht sicher, was Sie fragen. schauen Sie in Ihren \ bower_components \ bootstrap \ Ordner, dort wird eine Datei bower.json sein, bearbeiten Sie sie und ändern Sie den "Haupt" Abschnitt zu dem, was ich oben angegeben habe. – Helzgate

+0

Das hat mir geholfen !! –

4

Dies ist ein Problem mit der neuesten Version von Bootstrap, 3.3.5. Sehen Sie im folgenden GitHub Ausgabe für weitere Informationen:

https://github.com/twbs/bootstrap/issues/16663

Mit anderen Worten, sollte es bis Version 3.3.4 funktionieren.

Stellen Sie sicher, dass Sie die tatsächliche Version, die Sie in Bower verwenden möchten, auflisten; die Verwendung von ~ 3.3.2 in Ihrer bower.json nachdem 3.3.5 zum Beispiel bereits installiert wurde, würde Bower immer noch zu 3.3.5 führen, ändern Sie das nur auf 3.3.2 anstelle von ~ 3.3.2 und Sie werden golden sein !

8

Ja als @Helzgate sagte Bootstrap erwägt bootstrap.less als Standard-Stildatei statt bootstrap.css, können Sie dies, indem Sie

Besuche

bower_components/Bootstrap/Bower. json

dann kann man deutlich sehen, dass das Hauptattribut den folgenden Wert hält:

main": [ 
    "less/bootstrap.less", 
    "dist/js/bootstrap.js" 
    ] 

so alles, was Sie tun müssen, ist zu ersetzen weniger/bootstrap.less mit dist/css/bootstrap.css wie folgt aus:

"main": [ 
    "dist/css/bootstrap.css", 
    "dist/js/bootstrap.js" 
    ] 

und voila, das ist es.

26

Anstatt Bowerstrips bower.json zu ersetzen/modifizieren, können wir das Hauptobjekt in bower.json des Projekts überschreiben.

"overrides":{ 
"bootstrap":{ 
    "main":[ 
    "dist/js/bootstrap.js", 
    "dist/css/bootstrap.min.css", 
    "less/bootstrap.less" 
    ] 
}} 

Das funktioniert für mich!

2

Sie können bis zu Bootstrap 3.3.4 verwenden. Danach wird kein CSS injiziert. Nur JS. Dies wird ausführlich in https://github.com/twbs/bootstrap/issues/16663 erwähnt. Es wird wahrscheinlich eine Weile dauern, bis dies gelöst ist. Ab heute ist es immer noch nicht gelöst. Die Sache ist, dass wiredep so schön mit meinem Workflow arbeitet. Die einzige andere Sache, die auch funktioniert, ist Schluck-injizieren, aber dann ist das Schluck, und Schluck ist nicht so Bootstrap freundlich.

3

können Sie Überschreibung in wiredep Option wie folgt festgelegt:

gulp.task('bower',['inject-js'],function(){ 
return gulp.src('./www/index.html') 
    .pipe(wiredep({ 
     "overrides" : { 
      "bootstrap":{ 
       "main":[Set the path to any thing you like] 
      } 
     }, 
     directory:'./www/lib/' 
    })) 
    .pipe(gulp.dest('./www')); 
}); 
+0

das funktioniert viel besser. Ich habe versucht, die als Antwort markiert, aber wenn die "Bower installieren" ausgeführt wird, setzt es die bower.json Datei im Bootstrap-Verzeichnis (wie es erwartet werden sollte). Auf diese Weise wird vermieden, dass diese Datei geändert und versehentlich zurückgesetzt wird. – MikeScott8

+0

ein Hinweis bei der Verwendung von Bower zu beachten. Sie dürfen keine Datei im bower-Ordner ändern. – elhampour