【问题标题】:Gulp - Handle read-only permissions for dest files?Gulp - 处理 dest 文件的只读权限?
【发布时间】:2014-10-24 02:25:45
【问题描述】:

我在源文件夹中设置了带有read-only 属性的图像文件。在大多数情况下,我需要在 gulpfile.js 中多次将它们复制到目标文件夹。

我正在尝试像这样复制 src-to-dest 文件:

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

当 dest 文件夹为空时,它会工作一次。但是对于接下来的所有调用,我有一个例外,即文件是 dest 文件夹中的read-only。如何删除文件 attr read-only 以使 image-copy 每次调用时都能正常工作?

【问题讨论】:

    标签: javascript node.js gulp


    【解决方案1】:

    您可以使用 gulp-chmod 来处理您的文件的权限。

    因此,如果您想为每个人设置图像 readablewritable,您可以使用以下内容:

    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));
    });
    

    【讨论】:

    • 我是否理解正确,这会在将文件写入目标之前更改流上文件的属性,以便它们不会以只读方式开始写入?
    • @epeleg 更具体地说,乙烯基文件,但是你明白了 ;)
    • 是的,你是对的。我想向自己澄清一下,它不适用于文件系统,而是流中的(尚未写入到文件系统通过-.dest)乙烯基文件。 10 倍。
    【解决方案2】:

    通过传递options 属性。设置mode 值以指定任何需要创建为输出的文件夹的权限。

    gulp.dest("destination-path-here", {"mode": "0777"})
    

    干杯:-)

    【讨论】:

    • 有没有办法对所有 gulp.dest(...) 调用执行此操作?全局设置,例如?
    【解决方案3】:

    rimraf 可用于避免 TFS 权限问题(通过在复制文件之前删除目标文件)

    var rimraf = require("rimraf");
    gulp.task("images_clean", function (cb) {
        rimraf(imagesDest, cb);
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-13
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 2013-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多