我有一个使用外部库的google闭包组件(socket.io.js) 是否可以使用goog.require和goog.addDependency之类的东西来要求外部库 例如,像这样:
deps.js:
goog.addDependency('path/to/MyComponent.js', ['MyComponent'], ['goog.events', 'https://cdn.socket.io/socket.io-1.3.5.js']);
MyComponent.js:
goog.provide('MyComponent');
goog.require('goog.events');
// I want something like goog.require('https://cdn.socket.io/socket.io-1.3.5.js');
MyComponent = function() {
var socket = io('http://localhost');
};
答案 0 :(得分:1)
尝试为socket.io
添加externs:externs ["externs/socket.io-externs.js"]
更多信息:
http://swannodette.github.io/2014/03/14/externs-got-you-down/ http://lukevanderhart.com/2011/09/30/using-javascript-and-clojurescript.html https://blog.8thlight.com/taryn-sauer/2014/07/31/clojurescript-faux-pas.html
答案 1 :(得分:0)
socket.io.js与谷歌闭包编译器不兼容,所以你不能这样做,除非你适应socket.io.js与google关闭一起工作,有些人为jquery做了这个例子,但它显然不可行解决方案,你必须为每个新版本blablala做这个...梦魇
你最好的办法是使用--externs告诉封闭编译器这是一个外部库,因此来自这个库的所有代码都不会被重命名,并且在编译后会保持“有效”
https://developers.google.com/closure/compiler/docs/api-tutorial3#howto-app