2016-08-06 10 views
7

Próbuję użyć socket.io klienta w moim kątowej 2 aplikacji i zainstalowanie go i typowaniasocket.io-klient w Kątowymi 2 app

Ja tylko import z „socket.io-klienta” ;

ale jakoś mam mnóstwo błędów z tego:

enter image description here

mogę używać lib w moim index.html jeśli załadować skrypt z CDN i po prostu umieścić kod startowy w sposób <script> tag, ale nie mogę go użyć w mojej prawdziwej aplikacji kątowej 2.

Co ja tu robię źle?

To mój boilerplate: https://github.com/mgechev/angular2-seed

Przykłady dla socket.io wydają się przestarzałe i dlatego unika się ich.

to wszystko robię i już się te błędy:

import * as io from 'socket.io-client'; 
[...] 
var socket = io('127.0.0.1'); 

Więc kwestia wydaje się być związane z SystemJS w jakiś sposób. Ten https://github.com/mgechev/angular2-seed/wiki/Add-external-dependency sugeruje, że mogę dodać socket.io-client i powinien automatycznie dodać wszystkie zależności, które nie wydają się jednak takie.

Próbowałem już pełnego przykładu, ale to też nie zadziała.

+0

Wygląda dla mnie tak, jak powinno używać się pliku socket.io.js, który jest specjalnie zaprojektowany dla przeglądarki. – jfriend00

+0

Korzystam z klienta socket.io, który był zalecany dla kątowej 2 w wielu miejscach – gempir

+0

umieścić jakiś kod na temat tego, jak próbujesz go zaimportować? – Ajey

Odpowiedz

2

Korzystam z klienta socket.io w mojej aplikacji kątowej 2 i nie mam z tym żadnych problemów. Przede wszystkim nie powinieneś umieszczać tagu script na socket.io-client w twoim index.hml. Po drugie trzeba te linie w konfiguracji system.js:

{ 
    packages: { 
     "socket.io-client": {"defaultExtension": "js"} 
    }, 

    map: { 
    "socket.io-client": "node_modules/socket.io-client/socket.io.js" 
    } 
} 

Wtedy po prostu użyć go:

import * as io from "socket.io-client"; 
io.connect(url, { /* ... */ }); 
+0

Próbowałem już czegoś podobnego, ale nie jestem pewien jak to zrobić praca. Oto mój plik konfiguracyjny z projektu seed (https://github.com/gempir/spamchamp/blob/master/tools/config/seed.config.ts), próbowałem dodać kilka sugerowanych miejsc, ale to nie praca. – gempir

+0

po prostu dodaj te linie do sekcji pakietów i map, a uzyskasz je działając – pleerock

+0

Zrobiłem, ale nadal mam ten sam problem:/ – gempir

0

podstawie this który został wymieniony w question należy użyć npm install @types/socket.io-client --save

+0

To odpowiada 4 miesiące temu z lepszą odpowiedzią. – George

+0

@George podając, że podany przeze mnie link github podał odpowiedź związaną z problemem z zaakceptowaną odpowiedzią, nie sądzę, że zaakceptowana odpowiedź jest lepsza. –

Powiązane problemy