这是我的文件结构
/base.js
/foo/main.js
/foo/bar/main.js
/baz/main.js
我想要共4个文件。一个用于树的每个叶节点,其中包含所有“包含”文件的内容。这是文件的内容。
base.js
//anything really
/foo/main.js
include 'base.js'
/foo/bar/main.js
include 'base.js'
include '/foo/main.js'
/baz/main.js
include 'base.js'
这些'包含'就像php包含的那样,它们在babel的编译时连接而不是es2016 / es2016的传统包含。我希望每个文件都是为过去版本的ES编译的babel,并且在我将它们用于服务之前,它的所有内容都包含层次结构。它们不在节点服务器上。这将是传统的php / apache托管。巴贝尔只是出于交际目的。
我知道我可以使用--out-file
选项在单个文件中编译所有js,我可以导入和导出模块但是如何让babel连接不同的文件而无需编写和维护cli命令在文件的顶部有'include'指令。
答案 0 :(得分:2)
听起来您可以考虑使用Browserify并结合babelify
将文件转换为ES5。
基本上,捆绑所有" main.js"树中的文件,您可以运行以下(假设类Unix操作系统):
for file in */**/main.js
do
browserify -t [ babelify ] $file > $(dirname $file)/bundle.js
done
(你可以很容易地将它放在shell脚本中)
这将在bundle.js
旁边创建一个名为main.js
的文件,其中包含main.js
的已转换内容及其任何依赖项(使用{{1}加载}或require()
)。
要让import
将ES6转换为ES5,您需要安装一些常见的Babel预设,例如babelify
,并将它们作为参数传递给es2015
(请参阅this) :
babelify
(或使用.babelrc
文件)