Gulp:" Event.js:85"在清洁期间

时间:2015-06-12 12:57:38

标签: gulp

我尝试使用gulp-clean删除目录中的所有文件夹和文件。

我的目录:

app
---subfolder1
---subfolder2
------subfolder
------file1
etc

我的代码:

gulp.task('clean',function(){
    var PATH_TO_CLEAN = '../app/**';
    if(argv.path != null)
        PATH_TO_CLEAN = '../app/'+argv.path+'/**';

    return gulp.src(PATH_TO_CLEAN, {read: false})
        .pipe(clean({force: true}))
        .on("error", handleError);
});

// Error handler
function handleError(err) {
    console.log(err.toString());
    this.emit('end');
}

默认路径是' ../ app'但您可以使用参数--path = subfolder_dir

仅删除子文件夹

在执行gulp清理期间出现此错误:

[14:43:08] Starting 'clean'...
events.js:85
      throw er; // Unhandled 'error' event
            ^
Error: ENOENT, lstat 'C:\some_path\file.type'
    at Error (native)

Gulp停止但错误提到的文件被删除。

重复" gulp clean"我终于可以取得成功了:

[14:53:54] Starting 'clean'...
[14:53:54] Finished 'clean' after 11 ms

你知道我怎么能避免这个错误吗?

我尝试了del并没有成功。

2 个答案:

答案 0 :(得分:0)

找到解决方案:

gulp.task('clean',function(){
    var PATH_TO_CLEAN = '../app/**';
    if(argv.path != null)
        PATH_TO_CLEAN = '../app/'+argv.path+'/**';

    del([PATH_TO_CLEAN], {force: true});
});

这不是我想管理它的方式(通过管道),但效果很好。

答案 1 :(得分:0)

gulp-clean已被弃用,不应再使用了。

在我的项目skeletonSPA中,我使用以下任务来清理环境:

gulp.task('clean', function() {
  var del = require('del');
  var vinylPaths = require('vinyl-paths');

  return gulp.src([PATH_TO_CLEAN])
  .pipe(vinylPaths(del));
});

此任务不会破坏gulp管道。

为此,您需要安装以下模块:

npm install del vinyl-paths