Eu te dou duas respostas. O npm combinado com outras ferramentas é poderoso, mas requer algum trabalho de configuração. Se você deseja apenas baixar algumas bibliotecas, pode usar o Library Manager (lançado no Visual Studio 15.8).
NPM (avançado)
Primeiro adicione o package.json na raiz do seu projeto. Adicione o seguinte conteúdo:
{
"version": "1.0.0",
"name": "asp.net",
"private": true,
"devDependencies": {
"gulp": "3.9.1",
"del": "3.0.0"
},
"dependencies": {
"jquery": "3.3.1",
"jquery-validation": "1.17.0",
"jquery-validation-unobtrusive": "3.2.10",
"bootstrap": "3.3.7"
}
}
Isso fará com que o NPM baixe Bootstrap, JQuery e outras bibliotecas usadas em um novo projeto principal asp.net para uma pasta chamada node_modules. O próximo passo é copiar os arquivos para um local apropriado. Para fazer isso, usaremos o gulp, que também foi baixado pelo NPM. Em seguida, adicione um novo arquivo na raiz do seu projeto denominado gulpfile.js . Adicione o seguinte conteúdo:
/// <binding AfterBuild='default' Clean='clean' />
/*
This file is the main entry point for defining Gulp tasks and using Gulp plugins.
Click here to learn more. http://go.microsoft.com/fwlink/?LinkId=518007
*/
var gulp = require('gulp');
var del = require('del');
var nodeRoot = './node_modules/';
var targetPath = './wwwroot/lib/';
gulp.task('clean', function () {
return del([targetPath + '/**/*']);
});
gulp.task('default', function () {
gulp.src(nodeRoot + "bootstrap/dist/js/*").pipe(gulp.dest(targetPath + "/bootstrap/dist/js"));
gulp.src(nodeRoot + "bootstrap/dist/css/*").pipe(gulp.dest(targetPath + "/bootstrap/dist/css"));
gulp.src(nodeRoot + "bootstrap/dist/fonts/*").pipe(gulp.dest(targetPath + "/bootstrap/dist/fonts"));
gulp.src(nodeRoot + "jquery/dist/jquery.js").pipe(gulp.dest(targetPath + "/jquery/dist"));
gulp.src(nodeRoot + "jquery/dist/jquery.min.js").pipe(gulp.dest(targetPath + "/jquery/dist"));
gulp.src(nodeRoot + "jquery/dist/jquery.min.map").pipe(gulp.dest(targetPath + "/jquery/dist"));
gulp.src(nodeRoot + "jquery-validation/dist/*.js").pipe(gulp.dest(targetPath + "/jquery-validation/dist"));
gulp.src(nodeRoot + "jquery-validation-unobtrusive/dist/*.js").pipe(gulp.dest(targetPath + "/jquery-validation-unobtrusive"));
});
Este arquivo contém um código JavaScript que é executado quando o projeto é construído e limpo. Ele irá copiar todos os arquivos necessários para lib2 ( não lib - você pode facilmente alterar isso ). Usei a mesma estrutura de um novo projeto, mas é fácil mudar os arquivos para um local diferente. Se você mover os arquivos, certifique-se de atualizar também _Layout.cshtml . Observe que todos os arquivos no diretório lib2 serão removidos quando o projeto for limpo.
Se você clicar com o botão direito do mouse em gulpfile.js , poderá selecionar Task Runner Explorer . A partir daqui, você pode executar o gulp manualmente para copiar ou limpar arquivos.
O Gulp também pode ser útil para outras tarefas, como reduzir arquivos JavaScript e CSS:
https://docs.microsoft.com/en-us/aspnet/core/client-side/using-gulp?view=aspnetcore-2.1
Gerenciador de biblioteca (simples)
Clique com o botão direito em seu projeto e selecione Gerenciar bibliotecas do lado do cliente . O arquivo libman.json agora está aberto. Neste arquivo, você especifica qual biblioteca e arquivos usar e onde devem ser armazenados localmente. Muito simples! O arquivo a seguir copia as bibliotecas padrão usadas ao criar um novo projeto ASP.NET Core 2.1:
{
"version": "1.0",
"defaultProvider": "cdnjs",
"libraries": [
{
"library": "jquery@3.3.1",
"files": [ "jquery.js", "jquery.min.map", "jquery.min.js" ],
"destination": "wwwroot/lib/jquery/dist/"
},
{
"library": "jquery-validate@1.17.0",
"files": [ "additional-methods.js", "additional-methods.min.js", "jquery.validate.js", "jquery.validate.min.js" ],
"destination": "wwwroot/lib/jquery-validation/dist/"
},
{
"library": "jquery-validation-unobtrusive@3.2.10",
"files": [ "jquery.validate.unobtrusive.js", "jquery.validate.unobtrusive.min.js" ],
"destination": "wwwroot/lib/jquery-validation-unobtrusive/"
},
{
"library": "twitter-bootstrap@3.3.7",
"files": [
"css/bootstrap.css",
"css/bootstrap.css.map",
"css/bootstrap.min.css",
"css/bootstrap.min.css.map",
"css/bootstrap-theme.css",
"css/bootstrap-theme.css.map",
"css/bootstrap-theme.min.css",
"css/bootstrap-theme.min.css.map",
"fonts/glyphicons-halflings-regular.eot",
"fonts/glyphicons-halflings-regular.svg",
"fonts/glyphicons-halflings-regular.ttf",
"fonts/glyphicons-halflings-regular.woff",
"fonts/glyphicons-halflings-regular.woff2",
"js/bootstrap.js",
"js/bootstrap.min.js",
"js/npm.js"
],
"destination": "wwwroot/lib/bootstrap/dist"
},
{
"library": "list.js@1.5.0",
"files": [ "list.js", "list.min.js" ],
"destination": "wwwroot/lib/listjs"
}
]
}
Se você mover os arquivos, certifique-se de atualizar também _Layout.cshtml .