Dam dwie odpowiedzi. npm w połączeniu z innymi narzędziami jest potężny, ale wymaga trochę pracy przy konfiguracji. Jeśli chcesz tylko pobrać niektóre biblioteki, możesz zamiast tego użyć Menedżera bibliotek (wydanego w programie Visual Studio 15.8).
NPM (zaawansowane)
Najpierw dodaj package.json do katalogu głównego projektu. Dodaj następującą zawartość:
{
"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"
}
}
Spowoduje to, że NPM pobierze biblioteki Bootstrap, JQuery i inne biblioteki używane w nowym podstawowym projekcie asp.net do folderu o nazwie node_modules. Kolejnym krokiem jest skopiowanie plików w odpowiednie miejsce. Aby to zrobić, użyjemy gulpa, który również został pobrany przez NPM. Następnie dodaj nowy plik w katalogu głównym projektu o nazwie gulpfile.js . Dodaj następującą zawartość:
/// <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"));
});
Ten plik zawiera kod JavaScript, który jest wykonywany podczas tworzenia i czyszczenia projektu. Skopiuje wszystkie potrzebne pliki do lib2 ( nie lib - możesz to łatwo zmienić ). Użyłem tej samej struktury, co w nowym projekcie, ale łatwo jest zmienić pliki w inne miejsce. Jeśli przeniesiesz pliki, upewnij się, że zaktualizowałeś również plik _Layout.cshtml . Zauważ, że wszystkie pliki w katalogu lib2 zostaną usunięte po wyczyszczeniu projektu.
Jeśli klikniesz prawym przyciskiem myszy plik gulpfile.js , możesz wybrać opcję Task Runner Explorer . Stąd możesz ręcznie uruchomić gulp, aby skopiować lub wyczyścić pliki.
Gulp może być również przydatny do innych zadań, takich jak minifikacja plików JavaScript i CSS:
https://docs.microsoft.com/en-us/aspnet/core/client-side/using-gulp?view=aspnetcore-2.1
Menedżer bibliotek (prosty)
Kliknij prawym przyciskiem myszy projekt i wybierz Zarządzaj bibliotekami po stronie klienta . Plik libman.json jest teraz otwarty. W tym pliku określasz, która biblioteka i pliki mają być używane i gdzie powinny być przechowywane lokalnie. Naprawdę proste! Poniższy plik kopiuje domyślne biblioteki używane podczas tworzenia nowego projektu 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"
}
]
}
Jeśli przeniesiesz pliki, upewnij się, że zaktualizowałeś również plik _Layout.cshtml .