我可以告诉 babel 替换输出目录吗?

Can I tell babel to replace an output directory?

情况

我正在 Node.js 中从事一个项目并使用 babel 来转换我的代码。我的 package.json 有一个 build 命令定义如下:

  "scripts": {
    "build": "yarn run babel src -d lib",
  },

问题

这个转译很好,取 src 的内容并将结果输出到 lib,但是有两个问题:

  1. lib 将包含来自过去转译的旧文件,即使它们在 src.
  2. 中不再有匹配文件
  3. 如果我的 OS 不区分大小写,Babel 将不会重命名大小写改变的文件。例如,如果我转译了一个名为 src/Foo.js 的文件,后来将其重命名为 src/foo.js,那么以后的转译文件仍将命名为 lib/Foo.js

问题

我可以告诉 babel 在转译之前擦除 lib 目录的内容,还是只需要在构建脚本中插入一个 rm

Babel 没有执行此操作的功能。使用 rimraf 或其他方式删除 运行 Babel 之前的目录是很常见的。 rm 直接当然也是一个选项,但如果你也想支持 Windows,那确实会变得更复杂,因此使用 rimraf