Есть ли способ автоматически копировать файлы в wwwroot?
У меня .HTML-код в каталоге wwwroot в и доступ к нему осуществляется из браузера на locahost:5001. Whe nI установил некоторые пакеты с помощью NPM, каталог папки node_modules был размещен на том же уровне, что и wwwroot в.
когда я связываюсь с файлами, я использую относительный путь, подобный этому.
href="../node_modules/package_this_or_that / package.минута.js"
Мне кажется, что лучшим подходом было бы доставить их в wwwroot в каталог и иметь их там. Не все содержимое пакетов, а только файлы, которые фактически используются (пропуск readmes и т. д.).
есть ли пакет для этого? Или это то, что нужно сделать с помощью скрипта сборки?
1 ответов
вы не должны получать доступ к файлам node_modules из интерфейса, как ваши файлы html или cshtml. Так что вы правы, вы должны скопировать их в .
можно использовать grunt
как связаны в Цзэн комментарий но я лично предпочитаю Gulp
, Я думаю, что это намного быстрее и проще в использовании.
код :
{
"version": "1.0.0",
"name": "asp.net",
"private": true,
"devDependencies": {
"gulp": "3.9.1",
"gulp-cached": "1.1.0",
}
}
затем создать gulpfile.js
в корневом каталоге вашего проекта и вы можете что-то написать как
var gulp = require('gulp'),
cache = require('gulp-cached'); //If cached version identical to current file then it doesn't pass it downstream so this file won't be copied
gulp.task('default', 'copy-node_modules');
gulp.task('copy-node_modules', function () {
try {
gulp.src('node_modules/**')
.pipe(cache('node_modules'))
.pipe(gulp.dest('wwwroot/node_modules'));
}
catch (e) {
return -1;
}
return 0;
});
открыть Task Runner Explorer
(если вы используете Visual Studio) и выполните свой default
задача или непосредственно copy-node_modules
задач.
Gulp очень полезно, я предлагаю вам изучить другие различные задачи gulp. Вы можете объединить и минимизировать файлы CSS и JS, удалить комментарии, вы даже можете создать watch
задача, которая выполняет другие задачи, как только файл изменяется.