@micjamking odpowiedź jest bardzo dobra wskazówka, ale ponieważ z Yeoman rzeczy powinno być łatwiejsze, będę zaoszczędzić trochę googling:
yo angular
- powiedzieć „nie” bootstrap tutaj - w przeciwnym razie będzie pobierz wersję 2.x
bower install --save bootstrap
npm install --save-dev grunt-bower-install
edit Gruntfile.js - wstaw zaznaczone linie:
// ...
} catch (e) {}
grunt.loadNpmTasks('grunt-bower-install'); // INSERT
grunt.initConfig({
yeoman: yeomanConfig,
'bower-install': { // INSERT BEGIN
target: { // .
html: '<%= yeoman.app %>/index.html', // .
ignorePath: '<%= yeoman.app %>/' // .
} // .
}, // INSERT END
watch: {
coffee: {
files: ['<%= yeoman.app %>/scripts/{,*/}*.coffee'],
tasks: ['coffee:dist']
// ...
edit app/index.html - wkładka:
<!-- bower:css -->
<!-- endbower -->
oraz:
<!-- bower:js -->
<!-- endbower -->
w stosownych przypadkach - tych wstrzyknie odniesień do Bower zarządzane zasoby (stylesheet Bootstrap i JS w naszym przypadku).
aktualizacja 10/5/2013: aktualizacja Zastanów się umieszczając bower:xxx
wewnątrz build:xxx
.
W naszym przypadku bower:css
wewnątrz build:css
i bower:js
wewnątrz build:js
.
Jest to potrzebne do zminimalizowania działania podczas składania dist
. Uważam jednak, że to podejście nie jest tak doskonałe - patrz uwagi poniżej. Jestem trochę zwolniony, ponieważ jest to ten sam sposób, w jaki wersja bootstrap otrzymana przez Yeoman domyślnie jest zawarta w naszej aplikacji: - P
Uwaga: Aby uzyskać pracę z minięciem css, konieczna może być zmiana build:css(.tmp)
na build:css({.tmp,app})
.
grunt bower-install
Gotowa. Teraz uruchom serwer (grunt server
) i Bootstrap 3 będzie dostępny.
Uwagi - Aktualizacja 05.10.2013 - inspirowane @ dochodzenia Luke'a w komentarzu:
oparciu o this dodałem jeden podetap aby dist
pracę minifikacji.
Wstrzykiwanie Bowera działa, podobnie jak jego działanie, ale nie jestem tak szczęśliwy z takiego podejścia.
Przyczyny:
- [moll] nie używamy już minified środki uzyskane przez altana.
- Zminimalizowanie WSZYSTKICH rodzajów CSS/JS do pliku POJEDYNCZEGO jest całkiem kiepskim pomysłem. Lepszym sposobem uwzględnienia zewnętrznych zależności w aplikacji byłoby przełączenie między pobieraniem CDN (dist) i lokalnymi kopiami uzyskanymi za pomocą bower (dev). Coś jak profile z maven.
- W zależności od wielkości aplikacji, pobieranie wszystkich zasobów, w szczególności skryptów JavaScript, spowolni pierwsze spotkanie z naszą aplikacją.
Później reszta aplikacji zostanie załadowana szybciej, prawda, ale przy pierwszym wejściu użytkownika na naszą stronę, te obszerne, single-filery będą musiały zostać pobrane z wyprzedzeniem.
@yao tony również nie znalazłem tego podejścia fajnie - zobacz zadane pytanie.
Aktualizacja listopad 2013: Możesz użyć zadania gruntowego cdnify
. Fajnie
wersje oprogramowania używałem:
[email protected]:~/somewhere $ yo -v; grunt --version; bower -v
1.0.4
grunt-cli v0.1.9
grunt v0.4.1
1.2.6
Dla każdego, kto próbuje użyć v3 z generatorem kątowym, projekt został właśnie zaktualizowany. Przejdź do [tego problemu] (https://github.com/yeoman/generator-angular/pull/429) i postępuj zgodnie z instrukcjami. – user1724490