Wie npm mit ASP.NET Core zu verwenden

Ich bin mit npm zu verwalten jQuery, Bootstrap, Font Awesome und ähnliche client-Bibliotheken, die ich für meine ASP.NET Kernstück der Anwendung.

Den Ansatz, der arbeitete für mich begonnen, indem ein Paket.json-Datei für das Projekt, dass wie folgt aussieht:

{
    "version": "1.0.0",
    "name": "myapp",
    "private": true,
    "devDependencies": {
  },
  "dependencies": {
    "bootstrap": "^3.3.6",
    "font-awesome": "^4.6.1",
    "jquery": "^2.2.3"
  }
}

npm stellt diese Pakete in den node_modules-Ordner auf derselben Ebene wie wwwroot in das Projekt-Verzeichnis:

Wie npm mit ASP.NET Core zu verwenden

Als ASP.NET Kern dient die statischen Dateien aus dem Ordner "wwwroot", und node_modules ist nicht da, ich musste ein paar änderungen um diese Arbeit zu machen, die erste: hinzufügen von app.UseFileServer Recht vor app.UseStaticFiles in meinem Systemstart.cs-Datei:

app.UseFileServer(new FileServerOptions()
{
    FileProvider = new PhysicalFileProvider(
        Path.Combine(Directory.GetCurrentDirectory(), @"node_modules")), 
    RequestPath = new PathString("/node_modules"),
    EnableDirectoryBrowsing = true
});

app.UseStaticFiles();

und den zweiten, darunter node_modules in meinem publishOptions in das Projekt.json-Datei:

"publishOptions": {
  "include": [
    "web.config",
    "wwwroot",
    "Views",
    "node_modules"
  ]
},

Dies funktioniert in meiner Entwicklungsumgebung und es funktioniert auch, wenn ich es bereitstellen zu meinem Azure App Service-Instanz, die von jquery, bootstrap und font-awesome statische Dateien auch gereicht, aber ich bin mir nicht sicher über diese Umsetzung.

Was ist der richtige Ansatz, dies zu tun?

Diese Lösung kam nach dem sammeln viele bits von Informationen aus verschiedenen Quellen zu versuchen einige, die nicht funktioniert hat, und es scheint ein wenig seltsam zu müssen, dienen diese Dateien von außerhalb der wwwroot.

Jede Beratung wird sehr geschätzt.

Kommentar zu dem Problem - Öffnen
Kann nützlich sein, link: blog.nbellocam.mir/2016/03/14/asp-net-core-und-eckig-2 Kommentarautor: adem caglin
Dieser link hat funktioniert beispielsweise auf ASP.NET Kern w/ npm: ievangelistblog.wordpress.com/2016/01/13/... Kommentarautor: David Pine
Eine Sache fiel mir auf, ist die Verwendung der Bundler und Minifier - Geben Sie die Quelle Außerhalb der wwwroot und wenn Sie es bauen, baut den JS in wwwroot. Das ist der richtige Weg.. Man sollte nicht das bereitstellen von Inhalten aus node_modules Kommentarautor: ppumkin

InformationsquelleAutor der Frage Carlos Figueroa | 2016-06-21

Schreibe einen Kommentar