2013-03-14 18 views
17

Jestem nowy w Node i NPM. Używam v0.10.0 węzeł i gdy uruchamiam KMP zainstalować socket.io polecenia pojawia się następujący błąd:Nie można zainstalować pliku socket.io w systemie Windows 7

C:\Users\USER\AppData\Roaming\npm\node_modules\socket.io\node_modules\socket.io- 
client\node_modules\ws>node "C:\Users\USER\AppData\Roaming\npm\node_modules\npm\ 
bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild 
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(29 
7,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry. 
TargetFrameworkVersion or PlatformToolset may be set to an invalid version nu 
mber. [C:\Users\USER\AppData\Roaming\npm\node_modules\socket.io\node_modules\so 
cket.io-client\node_modules\ws\build\bufferutil.vcxproj] 
bufferutil.cc 
c:\users\user\.node-gyp\0.10.0\deps\uv\include\uv-private/uv-win.h(32): fatal e 
rror C1083: Cannot open include file: 'winsock2.h': No such file or directory [ 
C:\Users\USER\AppData\Roaming\npm\node_modules\socket.io\node_modules\socket.io 
-client\node_modules\ws\build\bufferutil.vcxproj] 

myślę, że to jest błąd kompilacji więc spędziłem sporo czasu Googling i aktualizowania moje okna SDK, Visual Studio, .Net Framework, i tak dalej. W takiej czy innej postaci otrzymuję powyższy błąd. Zgodnie z tym linkiem https://connect.microsoft.com/VisualStudio/feedback/details/713415/erroneous-windows-sdk-x64-compilation-warning ostrzeżenie jest prawdopodobnie błędne, ponieważ jestem na komputerze x64. Widzę, że winsock2.h znajduje się w C: \ Program Files \ Microsoft SDK \ Windows \ v7.1 \ Include i uwzględnił to w mojej ścieżce. Moja ścieżka zawiera następujące elementy:

C:\Program Files\nodejs\;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcpackages;C:\Program Files\Microsoft Windows Performance Toolkit\;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include;C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib;C:\Program Files\Microsoft SDKs\Windows\v7.1\Include;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\include;C:\Program Files\Debugging Tools for Windows (x64)\winext\manifest;C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib\x64;

sam błąd z tej ścieżki. Jakieś pomysły?

+0

robi swoje prace instalacyjne? Często otrzymuję ostrzeżenia, które nie są prawdziwymi problemami w systemie Windows. – outside2344

+0

Tak, pomimo komunikatów, wygląda na to, że socket.io działa. – landland

Odpowiedz

2

Czy uruchamiasz komunikat CMD z wystarczającymi uprawnieniami? Miałem problemy z instalacją npm przy okazji b/c tego.

Jeśli tak jest, jst uruchom CMD jako administrator.

+1

Głównie npm install -g działa dobrze, ale mi się nie udało z powodu wymagania socket.io "ws". Uruchomienie CMD jako administrator i ponowne zainstalowanie sprawiło, że działał. –

+0

Niesamowite, tak się cieszę, że zadziałało! Nowwwww ... jak o tej akceptowanej odpowiedzi;) – Jeremythuff

+0

świetnie, uruchom CMD, ponieważ administrator jest rozwiązaniem! dzięki! – Kakitori

2

SO mimo moich uwag dotyczących prowadzenia powłoki jako administrator pracy, wpadłem na ten problem na innym komputerze, na którym ja był jeszcze działa powłoki jako administrator.

(A całkiem-dużo-complete ekstrakt z błędów są poniżej, na rzecz silników wyszukiwania)

Błędy wydawał związanej node-gyp których nie udało mi się zainstalować samodzielnie, a found some notes że pomógł:

potrzebował:

  • Microsoft Visual Studio C++ 2010 (wersja Express współpracuje również)
    • zrobiłem alrea dy mają ten
  • W przypadku 64-bitowych buduje od węzła i modułów rodzimych będzie również potrzebował Windows 7 64-bit SDK
    • to zainstalowanie przechowywane braku, a potem okazało się, że
    • _The SDK 7.1 NIE zainstalować, jeśli mieć nowszą vcredist_x86.exe niż wersja 10.0.30319 Visual C++ 2010 x86 Redistributable._ source

  • odinstalowałem 10.0. [Coś> 30319]
  • zainstalowana SDK 7,1
  • i następnie w stanie npm i -g node-inspector bez problemów (socket.io jest zależnością)

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(296,5): warning MSB800 
3: Could not find VCInstallDir variable from the registry. TargetFrameworkVersion or PlatformTools 
et may be set to an invalid version number. [C:\Users\Michael Paulukonis\AppData\Roaming\npm\node_m 
odules\socket.io\node_modules\socket.io-client\node_modules\ws\build\bufferutil.vcxproj] 

    bufferutil.cc 

c:\users\michael paulukonis\.node-gyp\0.10.5\deps\v8\include\v8stdint.h(33): fatal error C1083: Can 
not open include file: 'stddef.h': No such file or directory [C:\Users\Michael Paulukonis\AppData\R 
oaming\npm\node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\build\bufferutil.vc 
xproj] 

C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(296,5): warning MSB800 
3: Could not find VCInstallDir variable from the registry. TargetFrameworkVersion or PlatformTools 
et may be set to an invalid version number. [C:\Users\Michael Paulukonis\AppData\Roaming\npm\node_m 
odules\socket.io\node_modules\socket.io-client\node_modules\ws\build\validation.vcxproj] 

    validation.cc 

c:\users\michael paulukonis\.node-gyp\0.10.5\deps\v8\include\v8stdint.h(33): fatal error C1083: Can 
not open include file: 'stddef.h': No such file or directory [C:\Users\Michael Paulukonis\AppData\R 
oaming\npm\node_modules\socket.io\node_modules\socket.io-client\node_modules\ws\build\validation.vc 
xproj] 
10

Wyszukałem bardzo szeroko z podobnym problemem próbując npm zainstalować gniazdo.IO

Stąd https://github.com/LearnBoost/socket.io/issues/1151#issuecomment-16015421

skończyło się na ustawienie tej zmiennej środowiskowej:

set GYP_MSVS_VERSION=2013 

To było po zainstalowaniu systemu Windows z dodatkiem SP1 (prep instalatora), a następnie instalator SP1 następnie 101 aktualizacje od okien aktualizacjach następnie VS 2013 Wyrazić.

Łatwy naprawdę: -/

+0

2012 pracował dla mnie – setec

5

Występuje problem z instalacją węzła na Windows 7 x64. Zasadniczo, musisz wyraźnie określić zestaw narzędzi platformy podczas budowania rozwiązania za pomocą msbuild. Oto rozwiązanie, które pracował dla mnie: w biegu terminala:

call "C:\Program Files\Microsoft SDKs\Windows\v7.1\bin\Setenv.cmd" /Release /x64

następnie uruchomić

npm install socket.io

Więcej informacji here

+0

Powinieneś dać krótkie streszczenie zawartości linku tutaj ... Jeśli link się obniży, przyszli czytelnicy mogą nie być w stanie dowiedzieć się, co problem był. – Conduit

+0

Jak wykonać to "połączenie"? Dziękuję Ci. –

+0

Ray C Lin, można po prostu wkleić polecenie do powłoki systemu Windows. – user2961443