Gulp:复制所有文件,但排除一个扩展名

时间:2018-12-14 13:12:22

标签: gulp glob

我正在处理Typescript项目,并且正在尝试实现Gulp。 在我的src/文件夹中,文件具有不同的扩展名。

我已配置Gulp使用Babel将每个*.ts文件转换为Javascript,并使用Typescript编译器输出类型定义文件。 我希望将所有其他文件复制到dist/文件夹中。

const {
  dest,
  src
} = require("gulp");

function cp() {
  return src("src/**/*.*", "!(src/**/*.ts)")
    .pipe(dest("./dist"));
};

exports.cp = cp;

我希望cp函数将扩展名为.ts的文件以外的每个文件复制到dist/文件夹中。

如果我定义了要复制的扩展名并避免使用通配符扩展名,则以上代码将起作用。 我在网上找到了许多示例,但是它们通常不使用通配符扩展名。我不确定问题是来自我的否定还是来自通配符扩展名的使用。有什么办法吗?

非常感谢!

2 个答案:

答案 0 :(得分:0)

尝试

"!src/**/*.ts"

删除您有"!(src/**/*.ts)"的括号。

答案 1 :(得分:0)

找到了!

该解决方案在src()方法的官方文档中用黑白色表示。解决方法如下:

const {
  dest,
  src
} = require("gulp");

function cp() {
  return src(["src/**/*.*", "!src/**/*.ts"])
    .pipe(dest("./dist"));
};

exports.cp = cp;