在简单的示例中,Google Closure Library无法正确加载依赖项

时间:2016-02-07 16:05:08

标签: google-closure google-closure-library google-closure-templates

我试图通过Closure模板运行Google Closure Library,但是当我运行我的应用时,它会抛出错误soyutils_usegoog.js:74 Uncaught TypeError: Cannot read property 'StringBuffer' of undefined

我研究了所有内容,添加了goog deps.js文件,移动了一些东西,但我还是无法运行它。 所以我然后从CLosure网站复制了确切的例子来尝试解决它,它仍然给我同样的错误。 我在这里尝试了第一个简单示例:https://developers.google.com/closure/templates/docs/helloworld_js

如果我在控制台中查询goog.string.StringBuffer它会返回一个函数,它似乎只是加载该文件。

1 个答案:

答案 0 :(得分:0)

必须在执行脚本之前加载依赖项。通常,在使用调试加载程序时,可以通过将入口点的goog.require作为脚本标记内容来完成。 base.js中的加载器将使用deps.js中的info,并在初始化脚本标记之后将相应的依赖项添加为脚本标记。

如果您使用脚本标记直接加载模板,goog.reqire'd依赖项将在需要它的脚本之后加载,这听起来就像发生在您身上的事情(缺少详细信息,因此不清楚)

通常,对于生产用途,您可以使用Closure Compiler或其他有意识的工具构建一个包。