Używam npm do zarządzania jQuery, Bootstrap, Font Awesome i podobnych bibliotek klienckich potrzebuję do mojej aplikacji ASP.NET Core.Jak używać npm z ASP.NET Core
Podejście, że pracował dla mnie rozpoczął dodając plik package.json do projektu, który wygląda tak:
{
"version": "1.0.0",
"name": "myapp",
"private": true,
"devDependencies": {
},
"dependencies": {
"bootstrap": "^3.3.6",
"font-awesome": "^4.6.1",
"jquery": "^2.2.3"
}
}
npm przywraca te pakiety w folderze node_modules która znajduje się na tym samym poziomie co wwwroot w katalogu projektu:
Jak ASP.NET Rdzeń służy statycznych plików z folderu wwwroot i node_modules nie ma, musiałem zrobić kilka zmian do tej pracy, pierwszy : Dodaj ing app.UseFileServer tuż przed app.UseStaticFiles w moim pliku Startup.cs:
app.UseFileServer(new FileServerOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"node_modules")),
RequestPath = new PathString("/node_modules"),
EnableDirectoryBrowsing = true
});
app.UseStaticFiles();
a drugi, w tym node_modules w moim publishOptions w pliku project.json:
"publishOptions": {
"include": [
"web.config",
"wwwroot",
"Views",
"node_modules"
]
},
Działa to w moje środowisko programistyczne i działa również po wdrożeniu go w mojej instancji usługi Azure App Service, pliki jQuery, bootstrap i font-awesome są dobrze obsługiwane, ale nie jestem pewien co do tej implementacji.
Jakie jest właściwe podejście do tego?
To rozwiązanie pojawiło się po zebraniu dużej ilości informacji z kilku źródeł i wypróbowaniu niektórych z nich, które nie działały, i wydaje się nieco dziwne, że serwujemy te pliki z zewnątrz wwwroot.
Każda rada zostanie bardzo doceniona.
Może być przydatne łącze: http://blog.nbellocam.me/2016/03/14/asp-net-core-and-angular-2/ –
Ten link ma działający przykład na ** ASP.NET Core ** w/* * npm **: https://ievangelistblog.wordpress.com/2016/01/13/building-an-angular2-spa-with-asp-net-5-mvc-6-web-api-2-andtyptypescript -1-7-5/ –
Jedną rzeczą, która mi się przydarzyła, jest użycie 'Bundler i Minifier' - Podaj źródło poza WWW wwwroot, a po jego zbudowaniu zbuduj JS na wwwroot. To jest właściwy sposób. Nie powinieneś udostępniać treści z node_modules – ppumkin