2013-03-14 9 views
17

Sono nuovo al nodo e all'npm. Sto usando Nodo v0.10.0 e quando ho eseguito il NPM installa socket.io comando ottengo il seguente errore:Impossibile installare socket.io su 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] 

Credo che questo sia un errore di generazione così ho passato un sacco di tempo Googling e aggiornare il mio Windows SDK, Visual Studio, .Net Framework e così via. In una forma o nell'altra ricevo l'errore sopra riportato. Secondo questo link https://connect.microsoft.com/VisualStudio/feedback/details/713415/erroneous-windows-sdk-x64-compilation-warning l'avviso è probabilmente errato come sono su una macchina x64. Vedo che winsock2.h si trova in C: \ Programmi \ Microsoft SDK \ Windows \ v7.1 \ Include e l'ho incluso nel mio percorso. Il mio percorso contiene il seguente:

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;

stesso errore con questo percorso. Qualche idea?

+0

funziona il vostro impianto? Ricevo spesso avvertenze che non finiscono per essere problemi reali su Windows. – outside2344

+0

sì, nonostante i messaggi socket.io sembra funzionare. – landland

risposta

2

Si sta avviando il prompt CMD con autorizzazioni sufficienti? Ho avuto problemi con l'installazione di npm in occasione di b/c di questo.

In questo caso, eseguire CMD come amministratore.

+1

La maggior parte dell'installazione di npm -g funziona correttamente, ma non funzionava correttamente sul socket.io requisito "ws". L'esecuzione di CMD come amministratore e la reinstallazione hanno funzionato. –

+0

Fantastico, sono così felice che abbia funzionato! Nowwwww ... come 'quella risposta accettata;) – Jeremythuff

+0

great, eseguire CMD come amministratore è la soluzione! Grazie! – Kakitori

2

SO nonostante i miei commenti in esecuzione di shell come amministratore di lavoro, mi sono imbattuto in questo problema su un'altra macchina in cui mi ero ancora esecuzione di shell come amministratore.

(Un estratto pretty-tanto completa degli errori sono al di sotto, a beneficio dei motori di ricerca)

Gli errori sembravano correlate a node-gyp che non ero in grado di installare standalone, e found some notes che ha aiutato:

È necessario:

  • Microsoft Visual Studio C++ 2010 (versione Express funziona bene)
    • ho fatto alrea dy avete questo
  • Per 64 bit build di nodo e moduli nativi sarà necessario anche il Windows 7 64-bit SDK
    • questa installazione mantenuto in mancanza, e poi ho scoperto che
    • _Il SDK 7.1 non viene installato se si avere un vcredist_x86.exe più recente della versione 10.0.30319 di Visual C++ 2010 x86 Redistributable._ source

  • ho disinstallato 10.0. [Qualcosa> 30319]
  • installato l'SDK 7.1
  • ed era quindi in grado di npm i -g node-inspector senza problemi (socket.io è una dipendenza)

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

Ho cercato in lungo e in largo con un problema simile cercando di installare npm socket.io

Da qui https://github.com/LearnBoost/socket.io/issues/1151#issuecomment-16015421

ho finito per l'impostazione di questa variabile d'ambiente:

set GYP_MSVS_VERSION=2013 

Questo è stato dopo l'installazione di Windows SP1 (installer prep) allora il programma di installazione di SP1 di 101 aggiornamenti da Windows aggiornamenti poi VS 2013 Esprimere.

facile davvero: -/

+0

2012 ha funzionato per me – setec

5

C'è un problema con l'installazione nodo su Windows 7 x64. In sostanza, è necessario specificare in modo esplicito il set di strumenti della piattaforma quando si crea la soluzione con msbuild. Ecco una soluzione che ha funzionato per me: nel vostro terminale eseguire:

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

quindi eseguire

npm install socket.io

Maggiori informazioni here

+0

Dovresti dare una breve sinossi del contenuto del link qui ... Se il collegamento si interrompe, i futuri lettori potrebbero non essere in grado di capire cosa il problema era – Conduit

+0

Come effettuare questa "chiamata" per favore? grazie. –

+0

Ray C Lin, puoi semplicemente incollare il comando nella shell di Windows. – user2961443