使用babel连接文件
这是我的文件结构
/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编译的,并且在把它们放到服务之前,它的所有内容都包含在层次结构中。 他们不会在节点服务器上。 这将是传统的PHP / Apache主机。 巴别尔只是为了发挥作用。
我知道我可以使用--out-file
选项将所有js编译成单个文件,我可以导入和导出模块,但是如何让babel连接不同的文件,而无需编写和维护cli命令,只需要将“include '指令在文件的顶部。
这听起来像你可以考虑使用Browserify ,结合babelify将文件转换为ES5。
基本上,要将树中的所有“main.js”文件捆绑在一起,可以运行下面的命令(假设一个类Unix操作系统):
for file in */**/main.js do browserify -t [ babelify ] $file > $(dirname $file)/bundle.js done
(你可以很容易地把它放在shell脚本中)
这将在bundle.js
旁边创build一个名为bundle.js
的文件,它将包含main.js的转译内容及其任何依赖项(使用require()
或import
加载)。
为了得到babelify
将ES6转换成ES5,你需要安装一些像es2015
这样的通用Babel预设,并把它们作为parameter passing给babelify
(参见本文 ):
browserify -t [ babelify --presets [ es2015 ] ] $file
(或使用.babelrc
文件)