尝试覆盖Gulp中的现有文件时出现EEXIST错误?

尝试覆盖Gulp中的现有文件时出现EEXIST错误?,gulp,Gulp,我的Gulpfile中有一些任务,我想运行它们,或者让它们的输出替换或更改现有文件。例如,我想运行wiredep,让代码替换index.html(与源文件相同)中的块,因此基本上我有以下功能: gulp.task('bower', () => { return gulp.src('app/index.html') .pipe(wiredep()) .pipe(gulp.dest('app/index.html')) // Have wiredep operate on

我的Gulpfile中有一些任务,我想运行它们,或者让它们的输出替换或更改现有文件。例如,我想运行
wiredep
,让代码替换
index.html
(与源文件相同)中的块,因此基本上我有以下功能:

gulp.task('bower', () => {
  return gulp.src('app/index.html')
    .pipe(wiredep())
    .pipe(gulp.dest('app/index.html')) // Have wiredep operate on the source 
})
但这会产生一个
EEXIST
错误

类似地,我希望运行
stylus
命令,并将输出通过管道传输到一个已经存在的文件(因为它以前运行过)


除了每次运行
del
之外,我还有其他选择吗?看起来Gulp应该能够轻松覆盖现有文件,但我想不出一个简单的方法。

您应该能够使用具有选项的
Gulp.dest

选项。覆盖
类型:布尔型

默认值:true

指定是否应覆盖具有相同路径的现有文件

gulp.dest()
需要一个目录。您正在传递一个文件名

发生的情况是gulp试图创建目录
app/index.html
,但它无法创建,因为已经有一个同名文件

您只需将
app/
作为目标目录传递:

gulp.task('bower', () => {
  return gulp.src('app/index.html')
    .pipe(wiredep())
    .pipe(gulp.dest('app/'));
})
会好的

gulp.task('bower',()=>{
return gulp.src('app/index.html'))
.pipe(wiredep())
.pipe(gulp.dest('app')//让wiredep对源进行操作
})

看起来默认为
true
,但它不起作用?@Startec但是你在哪里调用
gulp.dest
?我刚刚更新了问题。我在最后调用它,希望在同一个文件上操作我相信@SvenSchoenung解决了这个问题,但是耶
dest
需要一个目录而不是一个特定的文件名。Gulp总是覆盖现有文件
EEXIST
错误通常表示您没有正确处理某些异步操作。@SvenSchoenung这似乎是一项非常简单的任务,您看到我在这里可能做错了什么吗?