Javascript Babel使用通配符编译路径,但保持文件夹结构

Javascript Babel使用通配符编译路径,但保持文件夹结构,javascript,node.js,babeljs,Javascript,Node.js,Babeljs,嗨,我正在测试如何给babel提供带有通配符的路径并输出相同的结构 |src |---A |-----src |-----------a.js |---B |-----src |-----------b.js 如果我运行babel root/**/src-d lib/**/lib,它将输出 |lib |---** |-----lib |-----------a.js |-----------b.js 但是我要的是, |lib |---A |-----lib |-----------a.js

嗨,我正在测试如何给babel提供带有通配符的路径并输出相同的结构

|src
|---A
|-----src
|-----------a.js
|---B
|-----src
|-----------b.js
如果我运行
babel root/**/src-d lib/**/lib
,它将输出

|lib
|---**
|-----lib
|-----------a.js
|-----------b.js
但是我要的是,

|lib
|---A
|-----lib
|-----------a.js
|---B
|-----lib
|-----------b.js

我该怎么做呢?

巴贝尔cli不能完全做到这一点。它可以通过
--relative
选项接近:

babel src/*/src --out-dir ../lib --relative
但是,这不会重命名顶级目录;在原始根目录中,您将得到如下结构:

|src
|---A
|-----lib
|-----------a.js
|-----src
|-----------a.js
|---B
|-----lib
|-----------b.js
|-----src
|-----------b.js
如果您真的需要最终的结构,那么您可以使用一些bash
cp-rsrc库来跟进它;rm-rf lib/*/src
。或者使用rsync
rsync-r--exclude='src/*/src'src lib
。或者,不要使用上面的
--relative
,而是使用
ls src | xargs-I{}babel src/{}/src-d lib/{}/lib


如果你真的想一步到位,你可能需要使用Gulp之类的工具,或者直接用babel API编写脚本。

很抱歉回复太晚,你的解决方案太完美了!