如何在TFS中使用项目设置gulp-watch以避免EPERM问题

时间:2015-03-27 17:01:59

标签: angularjs visual-studio-2013 tfs gulp

我正在使用angularJS with bower来管理web UI中的依赖项,而npm则用于管理web UI中的bower,gulp,karam等依赖项。该项目全部存储在TFS中,我们正在使用VS2013,因为我们有一个Web API v2项目,它从SQL Server返回我们的数据。我真的很享受前端紧密反馈循环,但现在我们已将项目添加到TFS,我不得不:

  1. 在我的powershell窗口中停止gulp命令
  2. 删除“dist”文件夹中文件的只读权限
  3. 在我的powershell窗口中再次开始gulp
  4. 似乎即使“dist”文件夹未被检入TFS,因为gulp用于在“dist”文件夹中构建文件的文件,它们在gulp完成后被设置为只读。

    我宁愿不必从TFS中检出Web UI项目中的所有文件,只需这样gulp,gulp-watch和livetreload就可以了。我在检查TFS之前有工作,我可以轻松更改文件,保存文件,然后在浏览器中查看,但由于EPERM错误,这不再有效。

2 个答案:

答案 0 :(得分:2)

您应该在TFS中使用不需要只读标志的本地工作区。

http://blogs.msdn.com/b/phkelley/archive/2013/05/29/server-workspaces-vs-local-workspaces.aspx

它们是在TFS 2012中推出的。如果您在2010年之前使用的是TFS服务器,那么您已经不受支持,而且在几个月内就会失去支持。

答案 1 :(得分:1)

它似乎不是TFS的问题,它是gulp使文件只读。这段代码:

var chmod = require('gulp-chmod');

gulp.task('copy-images', function() {
  gulp.src(path_resource_images + '**/*.jpg')
.pipe(chmod(666))
.pipe(gulp.dest(path_app_images));
});

我在这里找到:Gulp - Handle read-only permissions for dest files?