如何在 google 闭包库中要求外部库?
How to require external libraries in google closure library?
我有一个使用外部库的 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');
};
socket.io.js 与 google 闭包编译器不兼容,所以除非你调整 socket.io.js 以使用 google 闭包,否则你不能这样做,有些人这样做了例如 jquery 但它显然不是一个可行的解决方案,你必须为每个新版本 blablala...噩梦
你最好的选择是使用 --externs 告诉闭包编译器这是一个外部库,因此来自这个库的所有代码都不会被重命名并且在编译后将保持 "valid"
https://developers.google.com/closure/compiler/docs/api-tutorial3#howto-app
尝试为 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
我有一个使用外部库的 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');
};
socket.io.js 与 google 闭包编译器不兼容,所以除非你调整 socket.io.js 以使用 google 闭包,否则你不能这样做,有些人这样做了例如 jquery 但它显然不是一个可行的解决方案,你必须为每个新版本 blablala...噩梦
你最好的选择是使用 --externs 告诉闭包编译器这是一个外部库,因此来自这个库的所有代码都不会被重命名并且在编译后将保持 "valid"
https://developers.google.com/closure/compiler/docs/api-tutorial3#howto-app
尝试为 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