1

我在结构存储库下面:

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

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

我有像下面这样的 bur 它移动所有文件:

gulp.task('common-update', function (done) {
  shelljs.cp('-rf', './third-party/angularSB/src/app/common/*', './src/app/common/');
  done();
});

4

2 回答 2

1

shelljscp功能在您要求它基于目录或通配符进行复制时不具有排除文件的能力。

解决此问题的选项包括:

  • 用于cp像以前一样复制集合,然后用于rm删除目标中不需要的特定文件。
  • 收集文件列表并根据您的标准过滤它们,然后用于cp单独复制每个文件。
  • copyfiles使用不支持某种排除选项的其他库,例如.
于 2019-02-18T04:46:03.963 回答
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();
});

于 2019-02-18T04:51:07.977 回答