我想在我们使用的 javascript 源代码上使用 google 闭包编译器。在开发模式中,我们倾向于将功能分解为大量文件,但在生产中希望将它们组合成module。
在调用编译器时,我可以给它一个要包含的文件列表以供编译,但是输出显示编译器没有保存文件列表的顺序。
我搜索了一下,发现可以使用goog.provide/good.require来控制不同js文件之间的依赖关系。问题在于它向我的 js 添加了我不需要或不想要的代码,例如:
goog.provide("mainFile")
将添加这个:
var mainFile = {};
到编译后的 js 文件,这是我不想要的。我们根本没有使用 google 闭包库,我只想使用编译器。
有没有办法告诉编译器文件的顺序而不包含更多我不需要的“闭包库”功能?我当然可以创建一个我自己的工具,它会首先获取所有文件,将它们组合成一个,然后作为编译器的输入,但如果编译器本身可以完成,我更愿意将其设为无效。
编辑
目标是能够生成类似于此线程中的答案的module:Using the --module option in Closure Compiler to create multiple output files
所以我想添加一个能力来控制哪些文件进入哪个module,同时还可以控制它们的顺序。目前我不使用通配符,但我计划在将来这样做(如果可能的话)。
简单地“cat file1.js file2.js > combine.js && compile...” 没问题,但在我们的例子中它有点复杂,我们必须编写一个基于某些逻辑来执行此操作的程序/脚本。如果我们能以某种方式提前告诉编译器文件的顺序,它可能只会节省实现这样一个程序的时间。
谢谢。