如何在使用shelljs将一个文件夹移动到另一个文件夹时排除某些文件

问题描述 投票:1回答:2

我在结构存储库下面:

src
  -common
        - asd.ts
        - filter.ts
  -checking
        -hi.json
  -third-party
        -src
            -common
                   -hello.ts
                   -two.ts  
                   -three.ts

在这里,我想将文件从第三方/ src / common移动到src / common,但我必须exlcude three.ts文件。

我尝试过如下,但它会移动所有文件:

gulp.task('common-update', function (done) {
  shelljs.cp('-rf', './third-party/angularSB/src/app/common/*', './src/app/common/');
  done();
});
typescript gulp shelljs
2个回答
1
投票

shelljscp函数在您要求基于目录或通配符进行复制时无法排除文件。

解决此问题的选项包括:

  • 使用cp复制集合,然后使用rm删除目标中不需要的特定文件。
  • 收集文件列表并根据您的条件过滤它们,然后使用cp分别复制每个文件。
  • 使用支持某种排除选项的其他库,例如copyfiles

1
投票

我这样试过它有效

gulp.task('common-update', function (done) {
  var check = glob.sync('./third-party/src/common/*');
  for (var i = 0; i < check.length - 1; i++) {
    if (check[i].indexOf('three.ts') === -1) {
      shelljs.cp('-rf', check[i], './src/common/');
    }
  }
  done();
});
© www.soinside.com 2019 - 2024. All rights reserved.