我想在我们使用的JavaScript源代码上使用Google Closure编译器。 在开发模式下,我们倾向于将功能拆分成许多文件,但是在生产环境中希望将它们组合成模块。
调用编译器时,我可以提供要包含在编译中的文件列表,但其输出显示编译器未保存文件列表的顺序。
我搜索了一下,发现可以使用goog.provide/good.require来控制不同js文件之间的依赖关系。但问题是它会向我的js添加我不需要或不想要的代码,例如:
goog.provide("mainFile")
我会加上这个:
var mainFile = {};
我不想将所有文件都编译成一个js文件。我们根本没有使用Google闭包库,我只想使用编译器。
有没有一种方法可以告诉编译器文件的顺序,而无需包含我不需要的更多"闭包库"功能?
当然,我可以自己创建一个工具,首先将所有文件合并为一个文件,然后将其作为编译器的输入,但如果编译器本身就能做到这一点,我宁愿避免使用该工具。
编辑
目标是能够生成像此线程中回答的模块:Using the --module option in Closure Compiler to create multiple output files
因此,我想添加控制哪些文件进入哪个模块以及对它们的顺序进行控制的能力。目前我不使用通配符,但未来计划使用(如果可能)。
简单地说,“cat file1.js file2.js > combined.js && compile...”很好,但在我们的情况下,它会变得更加复杂,我们将不得不编写一个基于某些逻辑的程序/脚本来完成这项工作。如果我们能以某种方式预先告诉编译器文件的顺序,那么它可能只是节省实现这样一个程序所需的时间。
谢谢。
cat file1 file2 > temp && compile -js temp
这个怎么样? - georg