2017-04-19 15 views
9

Prawdopodobnie głupie pytanie. Zainstalowałem Chart.js przy użyciu menedżera pakietów. Jest w eksploratorze rozwiązań.Jak dołączyć pakiety JavaScript, które instaluję z Nuget?

enter image description here

Ale gdzie są rzeczywiste pliki JS lub jak mogę je dostać? Kiedy go zainstalowałem, nie ma zmian, które Git wykrywa, więc nie jestem pewien, czy coś takiego się wydarzyło.

+1

'nie ma zmian, które Git wykrywa' Prawdopodobnie zignorowane przez '.gitignore'. Nie jestem pewien, jakiego menedżera pakietów używasz, ale zazwyczaj skonfiguruje go tak, że zależności nie będą w twoich zatwierdzeniach. –

+0

To wcale nie głupie pytanie. Dodałem ** jqwidgets **, który przychodzi tylko jako pakiet NuGet, a sprzedawca nie zdaje sobie sprawy, że to jest problem. – Auspex

Odpowiedz

6

Chart.js 2.5.0 zawiera katalog Content \ Scripts w pakiecie NuGet, który zawiera Chart.js i Chart.min.js. W zależności od tego, jakiego rodzaju projektu używasz, pliki te mogą, ale nie muszą być dodawane bezpośrednio do projektu.

Jeśli korzystasz z projektu .NET Framework, który ma plik packages.config, pliki JavaScript zostaną dodane do folderu Skrypty do projektu.

Jeśli używasz pliku project.json lub twój projekt korzysta z PackageReferences, nic nie zostanie dodane, ponieważ ten rodzaj projektu obsługuje tylko pliki, które znajdują się w katalogu contentFiles wewnątrz pakietu NuGet. Twój projekt wygląda jak projekt .NET Core, który użyje PackageReferences. Sam pakiet Chart.js NuGet znajdzie się w katalogu %UserProfile%\.nuget\packages, jeśli chcesz pobrać pliki javascript.

Odpowiedź Tsenga, która zaleca przejście na Bower lub menedżera pakietów Node, aby dodać pliki JavaScript, wydaje się być najlepszym rozwiązaniem, zamiast używać NuGeta, który nie ma dobrej obsługi dodawania plików źródłowych do projektu dla nowszego pliku projektu formaty.

+0

Masz rację, jest w '% UserProfile% \. Nuget \ packages'.Więc jak mam to podać w moim kodzie? – user7127000

+1

Prawdopodobnie będziesz musiał skopiować pliki i dodać je bezpośrednio do projektu i nie używać NuGet. –

+0

Nie zgadzam się z tą odpowiedzią. Używanie NuGet do niezmontowania jest odradzane w dzisiejszych czasach. Dla JavaScript/css powinieneś użyć menedżera pakietów javascript/node zamiast: npm lub altower zamiast nuget i ręcznie kopiować rzeczy ponad – Tseng

3

Odradza się korzystanie z NuGet dla bibliotek css/javascript. W przypadku środowiska ASP.NET Core należy używać menedżerów pakietów skryptów Java/węzłów, odpowiednio: bower i npm.

Możesz użyć jednego. Bower bardziej koncentruje się na bibliotekach przeglądarek i css, podczas gdy NPM jest bardziej dla rzeczy po stronie serwera (używając node.js). Ale plik node.js zawiera również większość (jeśli nie wszystkie) pakietów, które ma altana, więc jest to kwestia preferencji.

W tym celu należy wybrać projekt MVC i dodać nowy plik do katalogu głównego projektu. Będąc w menedżerze szablonów (Add->New File...), wyszukaj "Plik konfiguracyjny Bowera" lub "Plik konfiguracyjny npm".

Następnie edytować plik i dodaj swoją zależność, tzn

package.json (NPM)

{ 
    "dependencies:" { 
     "chart.js": "2.5.0" 
    } 
} 

Po zapisaniu plik zostanie pobrany w katalogu o nazwie „node_modules`. Ten sam nie wystarczy, ponieważ wymagane pliki muszą zostać skopiowane do folderu wwwroot, gdzie można uzyskać do nich dostęp, gdy aplikacja uruchomi się:

Do tego potrzebne będzie albo użycie pakietu do zlepienia plików razem (być w domyślnym templacie projektu ASP.NET Core e) lub użyć zadań, takich jak Gulp lub Grunt, aby uruchamiać zadania w kompilacji/publikowaniu, co robi to za Ciebie. Zobacz ASP.NET Core Docs on Gulp examples.

+0

"Odradza się korzystanie z NuGet dla bibliotek css/javascript." - Czy przypadkiem nie masz źródła tego stwierdzenia? Po prostu staram się zrozumieć bardziej szczegółowo. Mogłem wymyślić kilka scenariuszy, w których dystrybucja klienta i elementów serwera razem miałaby sens i prawdopodobnie przeważyła nad korzyściami wynikającymi z tego, że bower/npm zarządzał zależnościami po stronie klienta. Na stronie https://docs.microsoft.com/en-us/aspnet/core/client-side, Bower jest "polecany" przez npm lub NuGet w kilku miejscach. Jednak nie mogę znaleźć dyskusji na temat poszczególnych kompromisów: – Max

+1

@Max: Nie masz obecnie źródła pod ręką, ale w przeszłości pliki JavaScript/css itp. Byłyby rozpakowywane podczas wydawania 'Install- Pakiet ". W przepływie pracy ASP.NET Core tak się nie dzieje (przynajmniej miało to miejsce w czasie wydań 1.0/1.1). Również NuGet nie uruchamia żadnych skryptów powłoki power wewnątrz, co zdarzało się wcześniej w niektórych pakietach nuget. Jednym z powodów może być to, że powłoka zasilania nie jest dostępna w systemach Linux i MacOS (jeszcze). Każdy pakiet miałby własną strukturę folderów, w której można rozwinąć te pliki, co często kończy się na ich zatwierdzeniu. – Tseng

+1

node_modules/bower_modules są domyślnie wyłączone .github, które są tworzone przez szablony w tych dniach i ogólnie przepływy są różne (tj. Przez kopiowanie plików do 'wwwroot/lib', używanie" bundler "(nieangamowe szablony) lub nowsze Szablony ASP.NET Core do korzystania z pakietu Web Pack do pakowania wszystkiego dla dev/release.Najważniej, pakiety nuget są często aktualizowane powoli, biorąc pod uwagę, że dzisiejsze wykorzystanie bibliotek css/js przeniesiono na npm/bower. Rozwój ASP.NET ** Core **. – Tseng

Powiązane problemy