我到处搜索过,似乎找不到这个问题的答案:谷歌闭包编译器使用goog.require
函数解析依赖关系的顺序是什么。
示例:
goog.require('work.Utils');
goog.require('work.Languages');
goog.require('work.BrowserData');
goog.require('work.EventSystem');
goog.require('work.FileDescriptor');
goog.require('work.Environment');
这些都是按照确切的顺序在单个文件中所需要的,因为它们会相互使用。例如work.BrowserData
使用work.Languages
,但所有文件都使用work.Utils
。因此,不要在每个文件中要求work.Utils
我包含在顶部,以便编译器首先加载它然后加载其余文件。
问题是编译后的包含顺序是不同的:
work.EventSystem
work.FileDescriptor
work.Environment
work.BrowserData
work.Languages
work.Utils
这意味着在执行点,这两个文件都无权访问work.Utils
而work.BrowserData
有查找work.Utils
的问题。
除了在每个文件中包含每个必需的文件(这对于大型库来说是一项繁琐的工作),另一个解决方案是什么(如果存在)。
谢谢。
答案 0 :(得分:1)
如果其他文件需要work.Utils,那么这些文件中应该是必需的。