我可以告诉 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
,但是有两个问题:
lib
将包含来自过去转译的旧文件,即使它们在 src
. 中不再有匹配文件
- 如果我的 OS 不区分大小写,Babel 将不会重命名大小写改变的文件。例如,如果我转译了一个名为
src/Foo.js
的文件,后来将其重命名为 src/foo.js
,那么以后的转译文件仍将命名为 lib/Foo.js
问题
我可以告诉 babel 在转译之前擦除 lib
目录的内容,还是只需要在构建脚本中插入一个 rm
?
Babel 没有执行此操作的功能。使用 rimraf
或其他方式删除 运行 Babel 之前的目录是很常见的。 rm
直接当然也是一个选项,但如果你也想支持 Windows,那确实会变得更复杂,因此使用 rimraf
。
情况
我正在 Node.js 中从事一个项目并使用 babel 来转换我的代码。我的 package.json
有一个 build
命令定义如下:
"scripts": {
"build": "yarn run babel src -d lib",
},
问题
这个转译很好,取 src
的内容并将结果输出到 lib
,但是有两个问题:
lib
将包含来自过去转译的旧文件,即使它们在src
. 中不再有匹配文件
- 如果我的 OS 不区分大小写,Babel 将不会重命名大小写改变的文件。例如,如果我转译了一个名为
src/Foo.js
的文件,后来将其重命名为src/foo.js
,那么以后的转译文件仍将命名为lib/Foo.js
问题
我可以告诉 babel 在转译之前擦除 lib
目录的内容,还是只需要在构建脚本中插入一个 rm
?
Babel 没有执行此操作的功能。使用 rimraf
或其他方式删除 运行 Babel 之前的目录是很常见的。 rm
直接当然也是一个选项,但如果你也想支持 Windows,那确实会变得更复杂,因此使用 rimraf
。