Я понимаю, что этот вопрос задан раньше, но я не нашел ответа, который специально решает эту проблему.Файлы не найдены в вашей рабочей области или у вас нет прав на доступ к ним
Я использую Visual Studio 2015 Update 3 для проекта с Core 1 (MVC 6), Angular2, а проект находится в TFS. Я использую Gulp-watch для копирования файлов html/css/js, когда я работаю над ними, и это работает больше всего того времени. У меня есть большая часть wwwroot в моем файле .tfignore, включая папку «app», где все эти файлы копируются/очищаются с помощью gulp и gulp-watch. Я знаю, что настройки tfignore работают, потому что TFS не пытается зафиксировать эти файлы. Однако, когда Gulp выполняет очистку в этой папке, я получаю «не может быть найден в вашей рабочей области или у вас нет доступа к ней». Эта проверка TFS замедляет процесс, когда я строю, и этого достаточно, чтобы его исправить, но время от времени процесс Gulp-Watch терпит неудачу, потому что у него нет прав на копирование определенного html-файла. Ошибка копирования gulp-watch - EPERM: operation not permitted, open 'dashboard.component.html' at Error (native) Process terminated with code 1.
Если я очистку, а затем повторно запустил копию Gulp, у вас нет разрешений. Я думаю, что, возможно, TFS играет определенную роль в этой проблеме, даже если эти файлы tfignored.
PS. Я читал, что вы можете использовать gulp-plumber, чтобы избежать ошибок при ошибках, но я пытаюсь выяснить, что вызывает ошибки TFS в wwwroot и, надеюсь, в результате исправить ошибки частого копирования файлов.
Глоток код в вопросе:
var appDestPath = './wwwroot/app/';
gulp.task('clearAppDestinationFolderHtml',
function() {
return gulp.src(appDestPath + '**/*.html')
.pipe(clean());
});
gulp.task('clearAppDestinationFolderCss',
function() {
return gulp.src(appDestPath + '**/*.css')
.pipe(clean());
});
gulp.task('moveHtml', function() {
gulp.start('clearAppDestinationFolderHtml');
gulp.src(['app/**/*.html']).pipe(gulp.dest('./wwwroot/app/'));
});
gulp.task('moveCss', function() {
gulp.start('clearAppDestinationFolderCss');
gulp.src(['app/**/*.css']).pipe(gulp.dest('./wwwroot/app/'));
});
gulp.task('watch', function() {
gulp.watch('app/**/*.html', ['moveHtml']);
gulp.watch('app/**/*.css', ['moveCss']);
});
Очистка папки назначения было добавлено только при попытке решить эту проблему. Я понимаю, что чистка работает одновременно с копией и может вызвать собственные проблемы. Совсем недавно я попробовал этот код, а также скопировать только конкретный файл изменен, и в конечном итоге с той же ошибкой, как и прежде (operation not permitted, open 'wwwroot\app\User\Components\app.component.ts')
:
gulp.task('watch2', function() {
return gulp.watch('./app/**/*', function(obj){
if(obj.type === 'changed') {
gulp.src(obj.path, { "base": "./app/"})
.pipe(gulp.dest(appDestPath));
}
})
});
Кроме того, здесь мой .tfignore файл:
wwwroot/app
wwwroot/scripts
wwwroot/libs
wwwroot/_references.js
app/*.js
app/*.js.map
typings
Можете ли вы разместить код 'gulp-watch'? Ошибка 'operation not allowed' заключается в том, что этот .html-файл доступен только для чтения и/или под управлением источника. – Barryman9000
@ Barryman9000 Исходная папка находится под контролем источника, но папка назначения не находится под контролем источника. – Crob
О, так что ошибка, вероятно, не связана с TFS. Вы пытались настроить чистые задачи перед тем, как пытаться переместить файлы? Я предполагаю, что это как-то пытается очистить файлы, которые больше не существуют. .tfignore работает только для локальной рабочей области, но пока ваши файлы назначения не находятся в исходном управлении, я не думаю, что это вызывает эту ошибку. – Barryman9000