Soweit ich gesehen habe, gibt es keine Erklärung dafür, wo wir das clientseitige Skript finden sollen, socket.io
wenn node.js
es nicht als Webserver verwendet wird. Ich habe ein ganzes Verzeichnis clientseitiger Dateien gefunden, aber ich benötige sie in einer kombinierten Version (wie sie bei der Verwendung von node.js-Webservern bereitgestellt wird). Irgendwelche Ideen?
76
Der beste Weg, dies zu tun, ist die Verwendung einer Laube .
und fügen Sie Folgendes in den HTML-Code Ihrer App ein:
<script src="/bower_components/socket.io-client/socket.io.js"></script>
Auf diese Weise können Sie den socket.io-Teil Ihres Clients genauso behandeln wie jedes andere verwaltete Paket.
quelle
bower_components/socket.io-client/dist/socket.io.min.js
bower info socket.io-client
und es sieht so aus, als wäre es für bower ohne bower.json registriert (daher wurde im bower repo ein Standard erstellt). Sie können entweder das Projekt aufteilen, eine bower.json erstellen und Ihre eigene Bower-Version registrieren. Erstellen Sie eine Pull-Anfrage mit einer bower.json. Erstellen Sie ein Problem und prüfen Sie, ob ein Mitwirkender es erstellen kann.Ich denke, dass es besser und richtiger ist, es von dieser URL zu laden
src="/socket.io/socket.io.js"
in der Domäne, in der socket.io ausgeführt wird. Das Positive an dieser Lösung ist, dass beim Aktualisieren Ihres socket.io npm-Moduls auch Ihre Client-Datei aktualisiert wird und Sie sie nicht jedes Mal manuell kopieren müssen.
quelle
Ich habe Bower verwendet, wie in Matt Way's Antwort vorgeschlagen, und das hat großartig funktioniert, aber dann hatte die Bibliothek selbst keine eigene
bower.json
Datei.Dies bedeutete, dass das
bower-main-files
Gulp-Plugin, mit dem ich die JS-Dateien meiner Abhängigkeiten finde, nicht in socket.io gezogen wurde und beim Laden der Seite ein Fehler angezeigt wurde. Das Hinzufügen einer Überschreibung zu meinem Projekt hatbower.json
das Problem umgangen.Installieren Sie zuerst die Bibliothek mit Laube:
Fügen Sie dann die Überschreibung zur bower.json Ihres Projekts hinzu:
"overrides": { "socket.io-client": { "main": ["socket.io.js"] } }
quelle
Für alle, die wiredep ausführen und den "socket.io-client wurde nicht in Ihre Datei eingefügt" erhalten. Error:
Ändern Sie Ihre Wiredep-Aufgabe wie folgt:
wiredep: { .. main: { .. overrides: { 'socket.io-client': { main: 'socket.io.js' } } }
quelle
socket.io-client
?Wenn Sie bower.json verwenden, fügen Sie die Abhängigkeit socket.io-client hinzu.
"socket.io-client": "0.9.x"
Führen Sie dann bower install aus , um socket.io-client herunterzuladen.
Fügen Sie dann das Skript-Tag in Ihr HTML ein.
<script src="bower_components/socket.io-client/dist/socket.io.min.js"></script>
quelle
Ich habe einen bower-kompatiblen socket.io-Client erstellt, der wie folgt installiert werden kann:
oder für Entwicklungszwecke:
Link zum Repo
quelle
Wenn Sie https://github.com/btford/angular-socket-io verwenden, stellen Sie sicher, dass Ihre index.html wie folgt lautet:
<!-- https://raw.githubusercontent.com/socketio/socket.io-client/master/socket.io.js --> <script src="socket.io.js"></script> <!-- build:js({client,node_modules}) app/vendor.js --> <!-- bower:js --> <script src="bower_components/jquery/dist/jquery.js"></script> <script src="bower_components/angular/angular.js"></script> <!-- ...... --> <script src="bower_components/angular-socket-io/socket.js"></script> <!-- endbower --> <!-- endbuild --> <script type="text/javascript" charset="utf-8"> angular.module('myapp', [ // ... 'btford.socket-io' ]); // do your angular/socket stuff </script>
quelle