Sto utilizzando npm per gestire le librerie client jQuery, Bootstrap, Font Awesome e simili di cui ho bisogno per la mia applicazione ASP.NET Core.Come utilizzare npm con ASP.NET Core
L'approccio che ha funzionato per me iniziata con l'aggiunta di un file package.json al progetto, che assomiglia a questo:
{
"version": "1.0.0",
"name": "myapp",
"private": true,
"devDependencies": {
},
"dependencies": {
"bootstrap": "^3.3.6",
"font-awesome": "^4.6.1",
"jquery": "^2.2.3"
}
}
npm ripristina questi pacchetti nella cartella node_modules che è allo stesso livello come wwwroot nella directory del progetto:
Come ASP.NET Nucleo serve i file statici dalla cartella wwwroot, e node_modules non c'è, ho dovuto fare un paio di modifiche per fare questo lavoro, il primo : Inserisci ing app.UseFileServer destra prima app.UseStaticFiles nel mio file Startup.cs:
app.UseFileServer(new FileServerOptions()
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"node_modules")),
RequestPath = new PathString("/node_modules"),
EnableDirectoryBrowsing = true
});
app.UseStaticFiles();
e la seconda, tra cui node_modules nei miei publishOptions nel file project.json:
"publishOptions": {
"include": [
"web.config",
"wwwroot",
"Views",
"node_modules"
]
},
Questo funziona in il mio ambiente di sviluppo e funziona anche quando lo distribuisco all'istanza del servizio app di Azure, i file statici jquery, bootstrap e font-awesome vengono serviti correttamente, ma non sono sicuro di questa implementazione.
Qual è l'approccio giusto per farlo?
Questa soluzione è arrivata dopo aver raccolto un sacco di informazioni da varie fonti e provandone alcune che non funzionavano, e sembra un po 'strano dover servire questi file al di fuori di wwwroot.
Qualsiasi consiglio sarà molto apprezzato.
Può essere link utile: http://blog.nbellocam.me/2016/03/14/asp-net-core-and-angular-2/ –
Questo link ha un esempio funzionante su ** 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-and-typescript -1-7-5/ –
Una cosa che mi è venuta in mente è usare 'Bundler and Minifier' - Specificare la fonte è Outside wwwroot e quando lo costruisci costruisce il JS in wwwroot. Questo è il modo corretto .. Non dovresti servire contenuti da node_modules – ppumkin