Babel使用通配符编译路径,但保留文件夹structre

时间:2019-01-16 15:32:39

标签: javascript node.js babel

嗨,我正在测试如何使用通配符给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

我该怎么办?

1 个答案:

答案 0 :(得分:1)

babel cli不能完全做到这一点。可以使用--relative选项关闭它:

babel src/*/src --out-dir ../lib --relative

但是,这不会重命名顶层目录;您将在原始根目录中得到如下所示的结构:

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

如果您确实需要最终结构,则可以使用一些cp -R src lib; 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编写脚本。