Puisque j'ai mis à jour mon PhoneGap vers la version 3.5.0-0.20.10, j'ai des problèmes dans mon projet.
Quand j'utilise le service PhoneGap, alors je vois le cli;
[phonegap] 200 /socket.io/?EIO=2&transport=polling&t=.......
Mais je n'utilise pas socket.io
. À l'aide des outils de développement Chrome, je vois que dans mon projet se trouve un dossier socket.io
avec un socket.io.js
. Donc, je pense que PhoneGap l'importe par lui-même.
Et mon requireJS a maintenant un problème:
Uncaught ReferenceError: io n'est pas défini
J'ai essayé de supprimer RequireJS, alors il fonctionne mais j'ai besoin de RequireJS. Tout fonctionne parfaitement sur l'ancienne version 3.5.0-0.20.5
Trouvé la réponse … Modifiez consoler.js sous le répertoire node-modules de phonegap (généralement / usr / local / lib / node_modules / phonegap / node_modules / connect-phonegap / res / middleware ) pour charger socket.io via AMD plutôt que directement:
<!-- <script src="/socket.io/socket.io.js"></script> --> <script> (function(window) { require(['/socket.io/socket.io.js'],function(io){ var socket = io('http://' + document.location.host); var previousConsole = window.console || {}; window.console = { log:function(msg){ previousConsole.log && previousConsole.log(msg); socket.emit('console','log', msg); }, warn:function(msg){ previousConsole.warn && previousConsole.warn(msg); socket.emit('console','warn', msg); }, error:function(msg){ previousConsole.error && previousConsole.error(msg); socket.emit('console','error', msg); } } }); })(window); </script>