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

Gulp: Copy all files but exclude one extension

我正在做一个 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/ 文件夹。

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

非常感谢!

尝试

"!src/**/*.ts"

删除括号 "!(src/**/*.ts)"

找到了!

src() 方法的官方文档中白底黑字写了解决方案。这是修复:

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

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

exports.cp = cp;