Search code examples
google-closuregoogle-closure-library

How to require external libraries in google closure library?


I have a google closure component that uses an external library (socket.io.js) Is it possible to require external libraries using something like goog.require and goog.addDependency For example, something like this:

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');
};

Solution

  • Try adding externs for socket.io

    :externs ["externs/socket.io-externs.js"]
    

    More info:

    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