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

How to setup gulp-watch with project in TFS to avoid EPERM issue

我正在使用 angularJS 和 bower 来管理网络中的依赖关系 UI 和 npm 来管理网络中的 bower、gulp、karam 等依赖关系 UI.该项目全部存储在 TFS 中,我们使用 VS2013,因为我们有一个从 SQL 服务器返回数据的 Web API v2 项目。我真的很喜欢前端的紧密反馈循环,但现在我们已经将我们的项目添加到 TFS,我必须不断地:

  1. 在我的 powershell 中停止 gulp 命令 window
  2. 取消"dist"文件夹中文件的只读权限
  3. 在我的 powershell 中再次启动 gulp window

似乎即使 "dist" 文件夹没有被签入 TFS,因为文件 gulp 用于构建 "dist" 文件夹中的文件,它们被设置为gulp 完成后只读。

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

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

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

早在 TFS 2012 中就引入了它们。如果您使用的是 2010 年之前的 TFS 服务器,那么您已经不受支持,2010 将在几个月后停止支持。

这似乎不是 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?