2015-06-24 37 views
13

Przechodzę przez samouczek dotyczący konfigurowania aplikacji AngularJS za pomocą Yeoman (http://yeoman.io/codelab.html), a pliki CSS Bootstrapa nie są uwzględniane w pliku index.html. Kiedy uruchomię pomruki, na stronie brakuje wszystkich stylów Bootstrap, w przeciwieństwie do tego, co widać na obrazie samouczka.Grunt Wiredep nie wstrzykuje plików bootstrap css w Yeoman Angular Tutorial

Pliki javascript Bootstrap są jednak zawarte w pliku index.html.

Czy to normalne zachowanie, czy też mam je uwzględnić ręcznie? Spodziewałbym się, że uruchomię aplikację Grunt Wiredep, aby dołączyć pliki bootstrap css pomiędzy obiektami zastępczymi <!-- bower:css --><!-- endbower --> w pliku index.html?

+0

Sprawdź plik Gruntfile.js, najprawdopodobniej jest on ignorowany w konfiguracji wiredep, aby móc importować bezpośrednio w pliku app.scss, ze względu na zmienne scss. – YOU

+0

Sprawdziłem plik Gruntfile.js i jedyne opcje w konfiguracji wiredep to 'src: [" <% = yeoman.app%>/index.html "], ignorePath:/\. \. \ //' – rodp82

+0

@ rodp82 nie użyłeś menedżera pakietów bower do zainstalowania Bootstrapa? lub ręcznie włączasz bootstrap? – nithin

Odpowiedz

0

Czy użyłeś wersji bootowania programu Sass po wybraniu opcji bootstrap. Po prostu skonfigurowałem następującą opcję:

Ta praca dla mnie.

Kiedy użyłeś tego przepływu, w pliku main.scss dołączonym do poniższej linii.

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

Jeśli jest to zdecydowanie konieczne, należy zastosować styl bootstrap.

Jeśli przejdziesz bez opcji bootstrap. Musisz użyć w wierszu poleceń, aby zainstalować bootstrap za pomocą następującego polecenia. Bower install bootstrap -S Konieczne "S". Po tym widać, że nie wstrzyknął pliku bootstrap.css dla pliku index.html. Następnie musisz zrobić małą zmianę w pliku bower.json w folderze instalacyjnym bootstrap. Przeglądaj następującą lokalizację, aby znaleźć bower.json

/bower_components/bootstrap/ 

Otwarte bower.js i znaleźć następujące fragmenty,

"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" 
], 

zapisz plik i uruchom ponownie grunt służą polecenia.

+0

Dziękuję za odpowiedź. Nie używałem Sassa w instalacji. Zmiana pliku bower.js w folderze bootstrap rozwiązuje pewne problemy, ale czy to normalna praktyka? Miałem wrażenie, że nie powinieneś zmieniać niczego w folderze bower_components, ponieważ nie są one przechowywane w kontroli wersji. – rodp82

+0

Nie jest to dobry sposób na zrobienie tego. Ponieważ po aktualizacji komponentu zastępuje on zmiany wprowadzone w plikach. Zwykle robimy to, gdy nie używamy wersji sass pakietów. Masz też inną opcję. Możesz ręcznie dołączyć plik css do html w spróbuj także w ten sposób. W przeciwnym razie musisz użyć wersji sass. – nithin

0

miałem ten sam problem i to co znalazłem w internecie aby go rozwiązać:

Prawdopodobnie zainstalowałeś wersję 3.3.5 bootstrap. Możesz to sprawdzić w pliku bower.json twojego projektu.

"bootstrap": "3.3.5" 

Jeśli tak, znalazłem te dwie opcje, aby dostać się z powrotem w stylu CSS:

  1. Można zainstalować Sass dla bootstrap zamiast podstawowego css, przestrzeganiem zaleceń @ Nithin jeśli chcesz.

  2. LUB, w wersji 3.3.5 programu startowego zadanie wiredep nie wstrzykuje pliku bootstrap.css w pliku index.html (powinno to zostać wkrótce poprawione), aby można było obniżyć wersję bootstrap do wersji 3.3.4 pisząc co następuje w wierszu poleceń:

    cd /../your-project-dir/

    altana zainstalować bootstrap # 3.3.4

następnie uruchomić folowing:

bower install 
grunt wiredep 

i spróbuj ponownie z

grunt serve 

Mam nadzieję, że to ci pomoże.

Źródła te pomogły mi rozwiązać mój problem. Yeoman and Bower not adding Bootstrap CSS (AngularJS generator) https://github.com/yeoman/generator-angular/issues/1116

2

Oficjalna odpowiedź od Bootstrap jest użycie nadpisania zablokować w bower.son:

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

Ze względu na niejasności w specyfikacji Bowera, wiredep wykonane kilka wątpliwych założeń dotyczących sposobu główne pole w bower.json działa. Niedawno Bower zaktualizował swoją specyfikację, aby rozwiązać ten problem i wyjaśnił, jak powinien działać główny i zaktualizowaliśmy naszą bower.json odpowiednio. Niestety, wiredep zepsuł się w wyniku, jeśli używałeś go z Bootstrap's vanompompiled CSS. Bower pracuje nad dalszym aktualizowaniem specyfikacji w celu rozwiązania tego problemu i lepszego wspomagania narzędzi takich jak wiredep.

Źródło: http://blog.getbootstrap.com/2015/06/15/bootstrap-3-3-5-released/

0

Dotyczy to także nowego Bootstrap 4. I jeszcze jedna ważna rzecz: trzeba dodać "współzależności" Bootstrap, aby mieć pewność, jQuery będzie wstrzykiwany przed 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" 
    } 
    } 
}