Chcę zaktualizować Bootstrap w ASP.NET Core za pomocą NuGet. Użyłem tego:
Install-Package bootstrap -Version 4.0.0
Dodał zależności, ale jak mam to teraz dodać do mojego projektu? Jaka jest ścieżka do lokalnych zależności NuGet?
.net
asp.net-core
nuget
bootstrap-4
asp.net-core-2.0
deweloper
źródło
źródło
Odpowiedzi:
Jak inni już wspominali, menedżer pakietów Bower , który był zwykle używany do takich zależności w aplikacji, która nie opiera się na skomplikowanych skryptach po stronie klienta, jest na wyjściu i aktywnie zaleca przejście na inne rozwiązania:
Więc chociaż nadal możesz go teraz używać, Bootstrap również ogłosił, że porzuci wsparcie dla niego . W rezultacie wbudowane szablony ASP.NET Core są powoli edytowane, aby również od nich odejść.
Niestety nie ma jasnej drogi naprzód. Wynika to głównie z faktu, że aplikacje internetowe nieustannie przechodzą w stronę klienta, wymagając złożonych systemów kompilacji po stronie klienta i wielu zależności. Więc jeśli tworzysz coś takiego, być może już wiesz, jak to rozwiązać, i możesz rozszerzyć istniejący proces budowania, aby po prostu uwzględnić tam również Bootstrap i jQuery.
Ale nadal istnieje wiele aplikacji internetowych, które nie są tak ciężkie po stronie klienta, w których aplikacja nadal działa głównie na serwerze, a serwer wyświetla statyczne widoki. Bower wcześniej wypełnił to, ułatwiając po prostu publikowanie zależności po stronie klienta bez tak dużego procesu.
W świecie .NET mamy również NuGet, a przy poprzednich wersjach ASP.NET możemy również użyć NuGet do dodania zależności do niektórych zależności po stronie klienta, ponieważ NuGet po prostu umieściłby zawartość w naszym projekcie poprawnie. Niestety w nowym
.csproj
formacie i nowym NuGet zainstalowane pakiety znajdują się poza naszym projektem, więc nie możemy po prostu odwoływać się do nich.Pozostaje nam kilka opcji dodawania naszych zależności:
Instalacja jednorazowa
To właśnie robią obecnie szablony ASP.NET Core, które nie są aplikacjami jednostronicowymi. Kiedy używasz ich do tworzenia nowej aplikacji,
wwwroot
folder zawiera po prostu folderlib
zawierający zależności:Jeśli przyjrzysz się uważnie obecnym plikom, zobaczysz, że zostały pierwotnie umieszczone tam przez Bower w celu utworzenia szablonu, ale prawdopodobnie wkrótce się to zmieni. Podstawową ideą jest to, że pliki są kopiowane raz do
wwwroot
folderu, więc możesz na nich polegać.Aby to zrobić, możemy po prostu postępować zgodnie z wprowadzeniem Bootstrap i bezpośrednio pobrać skompilowane pliki . Jak wspomniano na stronie pobierania, nie obejmuje to jQuery , więc musimy pobrać ją również osobno; to nie zawiera Popper.js choć jeśli zdecydujemy się skorzystać z
bootstrap.bundle
pliku później, które będziemy robić. W przypadku jQuery możemy po prostu pobrać pojedynczy „skompresowany plik produkcyjny” z witryny pobierania (kliknij prawym przyciskiem myszy łącze i wybierz z menu opcję „Zapisz łącze jako ...”).Pozostaje nam kilka plików, które po prostu rozpakują i skopiują do
wwwroot
folderu. Możemy również utworzyćlib
folder, aby było jaśniejsze, że są to zależności zewnętrzne:To wszystko, czego potrzebujemy, więc teraz musimy tylko dostosować nasz
_Layout.cshtml
plik, aby zawierał te zależności. W tym celu dodajemy następujący blok do<head>
:I kolejny blok na samym końcu
<body>
:Możesz także po prostu dołączyć zminimalizowane wersje i pominąć
<environment>
pomocników tagów, aby było to nieco prostsze. Ale to wszystko, co musisz zrobić, aby zacząć.Zależności od NPM
Bardziej nowoczesnym sposobem, również jeśli chcesz aktualizować swoje zależności, byłoby pobranie zależności z repozytorium pakietów NPM. Możesz do tego użyć NPM lub Yarn; w moim przykładzie użyję NPM.
Na początek musimy utworzyć
package.json
plik dla naszego projektu, abyśmy mogli określić nasze zależności. Aby to zrobić, po prostu robimy to w oknie dialogowym „Dodaj nowy element”:Kiedy już to zrobimy, musimy go edytować, aby uwzględnić nasze zależności. Powinno to wyglądać tak:
Zapisując, Visual Studio będzie już uruchamiać NPM, aby zainstalować za nas zależności. Zostaną zainstalowane w
node_modules
folderze. Pozostaje więc tylko pobrać pliki stamtąd do naszegowwwroot
folderu. Możesz to zrobić na kilka sposobów:bundleconfig.json
do tworzenia pakietów i minifikacjiMożemy użyć jednego z różnych sposobów
bundleconfig.json
używania a do tworzenia pakietów i minifikacji, jak wyjaśniono w dokumentacji . Bardzo prostym sposobem jest po prostu użycie pakietu BuildBundlerMinifier NuGet, który automatycznie konfiguruje w tym celu zadanie kompilacji.Po zainstalowaniu tego pakietu musimy utworzyć
bundleconfig.json
w katalogu głównym projektu następującą zawartość:To zasadniczo konfiguruje, które pliki mają być połączone w jakie. Kiedy budujemy, widzimy, że pliki
vendor.min.css
ivendor.js.css
są tworzone poprawnie. Więc wszystko, co musimy zrobić, to_Layouts.html
ponownie dostosować nasze, aby uwzględnić te pliki:Korzystanie z menedżera zadań, takiego jak Gulp
Jeśli chcemy nieco bardziej zająć się programowaniem po stronie klienta, możemy również zacząć używać narzędzi, których byśmy tam używali. Na przykład Webpack, który jest bardzo często używanym narzędziem do tworzenia naprawdę wszystkiego. Ale możemy również zacząć od prostszego menedżera zadań, takiego jak Gulp, i samodzielnie wykonać kilka niezbędnych kroków.
W tym celu dodajemy
gulpfile.js
do naszego katalogu głównego projektu, z następującą zawartością:Teraz musimy również dostosować nasze,
package.json
aby mieć zależności odgulp
igulp-concat
:Na koniec edytujemy nasze,
.csproj
aby dodać następujące zadanie, które zapewnia, że nasze zadanie Gulp zostanie uruchomione podczas budowania projektu:Teraz, kiedy budujemy,
default
uruchamiane jest zadanie Gulp, które uruchamiabuild-vendor
zadania, które następnie budują naszevendor.min.css
ivendor.min.js
tak jak wcześniej. Więc po dostosowaniu naszych_Layout.cshtml
tak jak powyżej, możemy skorzystać z jQuery i Bootstrap.Chociaż początkowa konfiguracja Gulpa jest nieco bardziej skomplikowana niż
bundleconfig.json
powyższa, weszliśmy teraz do świata węzłów i możemy zacząć korzystać ze wszystkich innych fajnych narzędzi. Warto więc zacząć od tego.Wniosek
Chociaż nagle stało się to o wiele bardziej skomplikowane niż w przypadku samego używania Bower, zyskujemy również dużą kontrolę dzięki tym nowym opcjom. Na przykład możemy teraz zdecydować, które pliki są faktycznie zawarte w
wwwroot
folderze i jak dokładnie wyglądają. Możemy również wykorzystać to, aby wykonać pierwsze kroki w świecie programowania po stronie klienta za pomocą Node, co powinno przynajmniej trochę pomóc w krzywej uczenia się.źródło
node -v
, i pobrać aktualną wersję tutaj na nodejs.orgPatrząc na to, wydaje się, że podejście LibMan działa najlepiej dla moich potrzeb z dodaniem Bootstrap. Podoba mi się, ponieważ jest teraz wbudowany w Visual Studio 2017 (15.8 lub nowszy) i ma własne okna dialogowe.
Aktualizacja 6/11/2020: bootstrap 4.1.3 jest teraz dodawany domyślnie w VS-2019.5 (podziękowania dla Haralda S. Hanssena za zauważenie).
Domyślna metoda, którą VS dodaje do projektów, używa Bower, ale wygląda na to, że jest w drodze. W nagłówku strony altany Microsoftu piszą:
Poniższe linki prowadzą do używania LibMan z ASP.NET Core w programie Visual Studio, gdzie pokazano, jak można dodać biblioteki libs za pomocą wbudowanego okna dialogowego:
Następnie dla bootstrapu po prostu (1) wybierz unpkg, (2) wpisz "bootstrap @ .." (3) Zainstaluj. Następnie wystarczy sprawdzić, czy wszystkie elementy zawarte w pliku _Layout.cshtml lub w innych miejscach są poprawne. Powinny być takie jak href = "~ / lib / bootstrap / dist / js / bootstrap ..." )
źródło
Wypróbuj Libmana , jest tak prosty jak Bower i możesz określić wwwroot / lib / jako folder pobierania.
źródło
Jaka jest dla mnie sztuczka:
1) Kliknij prawym przyciskiem myszy wwwroot> Dodaj> Biblioteka po stronie klienta
2) Wpisz „bootstrap” w polu wyszukiwania
3) Wybierz „Wybierz określone pliki”
4) Przewiń w dół i wybierz folder. W moim przypadku wybrałem „Twitter-bootstrap”
5) Sprawdź „css” i „js”
6) Kliknij „Instaluj”.
Kilka sekund później mam je wszystkie w folderze wwwroot. Zrób to samo dla wszystkich pakietów po stronie klienta, które chcesz dodać.
źródło
Libman wydaje się być teraz narzędziem preferowanym przez Microsoft. Jest zintegrowany z Visual Studio 2017 (15.8).
W tym artykule opisano, jak z niego korzystać, a nawet jak skonfigurować przywracanie wykonywane przez proces kompilacji.
Dokumentacja Bootstrap mówi, jakich plików potrzebujesz w swoim projekcie.
Poniższy przykład powinien działać jako konfiguracja dla libman.json.
}
źródło
Używamy bootstrap 4 w asp.net core, ale odwołujemy się do bibliotek z „npm” przy użyciu rozszerzenia „Package Installer” i okazało się, że jest to lepsze niż Nuget dla bibliotek JavaScript / CSS.
Następnie używamy rozszerzenia „Bundler & Minifier”, aby skopiować odpowiednie pliki do dystrybucji (z folderu npm node_modules, który znajduje się poza projektem) do wwwroot, tak jak lubimy w celu rozwoju / wdrożenia.
źródło
Niestety, będziesz mieć trudności z użyciem NuGet do zainstalowania Bootstrap (lub większości innych struktur JavaScript / CSS) w projekcie .NET Core. Jeśli spojrzysz na instalację NuGet, zobaczysz, że jest niezgodna:
jeśli musisz wiedzieć, gdzie są zależności pakietów lokalnych, znajdują się one teraz w katalogu twojego profilu lokalnego. to znaczy
%userprofile%\.nuget\packages\bootstrap\4.0.0\content\Scripts
.Proponuję jednak przejść na npm lub bower - jak w odpowiedzi Saineshwar.
źródło
BS4 jest teraz dostępny w .NET Core 2.2 . Na pewno w instalatorze SDK 2.2.105 x64. Korzystam z Visual Studio 2017 z nim. Jak dotąd dobrze nadaje się do nowych projektów aplikacji internetowych.
źródło
Dlaczego po prostu nie skorzystać z CDN? O ile nie musisz edytować kodu BS, wystarczy odwołać się do kodów w CDN.
Zobacz BS 4 CDN tutaj:
https://www.w3schools.com/bootstrap4/bootstrap_get_started.asp
Na dole strony.
źródło
Użyj pliku konfiguracyjnego nmp (dodaj go do swojego projektu internetowego), a następnie dodaj potrzebne pakiety w ten sam sposób, w jaki zrobiliśmy to przy użyciu bower.json i zapisz. Program Visual Studio pobierze go i zainstaluje. Pakiet znajdziesz pod węzłem nmp twojego projektu.
źródło