2015-06-24 14 views
13

Sto seguendo il tutorial sull'impostazione di un'app AngularJS utilizzando Yeoman (http://yeoman.io/codelab.html) ei file CSS di Bootstrap non vengono inclusi nel file index.html. Quindi, quando eseguo grunt service, alla pagina mancano tutti gli stili Bootstrap, a differenza di quanto mostrato nell'immagine del tutorial.Grunt Wiredep non inietta i file cst bootstrap in Yeoman Angular Tutorial

I file javascript Bootstrap sono tuttavia inclusi nel file index.html.

È questo comportamento normale o ho intenzione di includerlo manualmente? Mi sarei aspettato che eseguissi Grunt Wiredep per includere i file cst bootstrap tra i segnaposti <!-- bower:css --><!-- endbower --> nel file index.html?

+0

check in Gruntfile.js, molto probabilmente è ignorato in configurazione wiredep, per essere in grado di importare direttamente in app.scss, a causa delle variabili scss. – YOU

+0

Ho controllato Gruntfile.js e le uniche opzioni nella configurazione cablata sono 'src: [" <% = yeoman.app%>/index.html "], ignorePath:/\. \. \ //' – rodp82

+0

@ rodp82 ha fatto hai usato il gestore dei pacchetti bower per installare Bootstrap? o includi manualmente il bootstrap ?? – nithin

risposta

35

Aggiungere il codice di override per bootstrap al file bower.json (non modificare nulla in bower_components)

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

http://blog.getbootstrap.com/2015/06/15/bootstrap-3-3-5-released/

+0

Questo metodo ha funzionato per me. Grazie per la condivisione! – Scott

0

Hai usato la versione di bootstrap di sass quando hai scelto l'opzione di avvio. Ho appena impostato con la seguente opzione

Questo lavoro per me bene.

Quando si utilizza questo flusso, nel file main.scss incluso la riga seguente.

// bower:scss 
@import "bootstrap-sass-official/assets/stylesheets/_bootstrap.scss"; 
// endbower 

Se c'è sicuramente bisogno di applicare lo stile di bootstrap.

Se si va senza opzione bootstrap. È necessario utilizzare nella riga di comando per installare bootstrap utilizzando il seguente comando. bower install bootstrap -S Il "-S" necessario. Dopodiché vedrai che non è stato iniettato il file bootstrap.css per index.html. Quindi devi fare piccole modifiche nel file bower.json nella cartella installstrap di installazione. Sfoglia seguente percorso per trovare la bower.json

/bower_components/bootstrap/ 

bower.js aperte e trovare i seguenti frammenti,

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

and change as follow, 

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

Salvare il file ed eseguire grugnito servire di nuovo il comando.

+0

Grazie per la risposta. Non stavo usando Sass nell'installazione. La modifica del file bower.js nella cartella bootstrap risolve le cose, ma questa è una pratica normale? Avevo l'impressione che non fosse necessario apportare modifiche a qualcosa nella cartella bower_components in quanto non sono memorizzati nel controllo di versione. – rodp82

+0

No, non è il modo migliore per farlo. Perché quando aggiorni il componente, sostituisce le modifiche apportate ai file. Normalmente lo facciamo quando non usiamo la versione sass dei pacchetti. Hai anche altra opzione. Puoi includere manualmente il file css nel file html in prova anche in questo modo. Altrimenti devi usare la versione sass. – nithin

0

ho avuto lo stesso problema ed è quello che ho trovato su internet per risolverlo:

Probabilmente avete installato la versione 3.3.5 di bootstrap. Puoi verificarlo nel file bower.json del tuo progetto.

"bootstrap": "3.3.5" 

Se è così, ho trovato queste due opzioni per ottenere la parte posteriore stile css:

  1. È possibile installare Sass per bootstrap al posto del css di base, seguire le istruzioni di @ Nithin se si desidera.

  2. OPPURE, nella versione 3.3.5 di bootstrap l'attività wiredep non inserisce il bootstrap.css nel proprio index.html (dovrebbe essere risolto a breve), quindi è possibile eseguire il downgrade della versione di bootstrap a 3.3.4 scrivendo quanto segue in un prompt dei comandi:

    cd /../your-project-dir/

    scrigno di installare bootstrap # 3.3.4

quindi eseguire il folowing:

bower install 
grunt wiredep 

e riprovare con un

grunt serve 

Spero che questo ti possa aiutare.

Queste origini mi hanno aiutato a risolvere il mio problema. Yeoman and Bower not adding Bootstrap CSS (AngularJS generator) https://github.com/yeoman/generator-angular/issues/1116

2

La risposta ufficiale da Bootstrap è quello di utilizzare le sostituzioni bloccano in bower.son:

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

Grazie alla vaghezza nelle specifiche di Bower, wiredep fatto alcune ipotesi discutibili su come il campo principale in bower.json funziona. Recentemente, Bower ha aggiornato le proprie specifiche per risolvere il problema e chiarire come dovrebbe funzionare il sistema, e di conseguenza abbiamo aggiornato il nostro bower.json. Sfortunatamente, cablato si è rotto di conseguenza se lo stavi usando con il CSS precompilato di Bootstrap. Bower sta lavorando per aggiornare ulteriormente le proprie specifiche per risolvere questo problema e per meglio supportare strumenti come wiredep.

Fonte: http://blog.getbootstrap.com/2015/06/15/bootstrap-3-3-5-released/

0

Anche questo riguarda la nuova Bootstrap 4. E c'è una cosa importante: è necessario aggiungere "dipendenze" di Bootstrap per essere sicuri jQuery sarà iniettato prima bootstrap.js

"dependencies": { 
(...) 
}, 
"overrides": { 
    "bootstrap": { 
    "main": [ 
     "dist/js/bootstrap.js", 
     "dist/css/bootstrap.css", 
     "scss/bootstrap.scss",// <-- for new Bootstrap 
     "less/bootstrap.less" // <-- for old Bootstrap 
    ], 
    "dependencies": { 
     "jquery": ">= 3.2.1" 
    } 
    } 
}