我目前experimenting使用不同的JavaScript模块格式和加载程序,还想试用Google Closure。
我已basic example正常工作,但无法弄清楚如何将goog.require
用于外部库。我们以JQuery from CDN为例。
现在我正在做以下事情。在HTML页面中:
<script src="https://code.jquery.com/jquery-2.1.3.min.js"></script>
在剧本中:
goog.require("Greets");
goog.provide("Greets.MsgDivMessenger");
Greets.MsgDivMessenger = function() {};
Greets.MsgDivMessenger.prototype.sendMessage = function(message)
{
$('#msg').text(message);
};
这可以通过HTML页面本身的$
标记包含全局<script .../>
。
但我想要做的是通过goog.require
,加载JQuery,而无需 HTML页面中的<script .../>
标记:
goog.require("Greets");
goog.require("$");
goog.provide("Greets.MsgDivMessenger");
Greets.MsgDivMessenger = function() {};
Greets.MsgDivMessenger.prototype.sendMessage = function(message)
{
$('#msg').text(message);
};
我尝试将JQuery CDN URL添加为依赖项:
goog.addDependency('https://code.jquery.com/jquery-2.1.3.min.js', ['$'], []);
但这不起作用,goog.require
尝试加载.../closure/goog/https://code.jquery.com/jquery-2.1.3.min.js
。
是的,我知道我不需要$('msg')
的JQuery,但重点是使用Google Closure管理模块(包括外部模块)。
我怎样才能goog.require
来自CDN的JQuery?
答案 0 :(得分:2)
这不是预期用途,并且不支持它。 goog.provide/require
是一种依赖管理方案。声明为“goog.provide”的文件可能需要通过goog.require
声明它。对于生产用途,依赖项将被预加载或捆绑。
除非您想破解Closure,否则您唯一的选择就是将其与您的来源一起托管。