2015-02-01 29 views
6

Ciao, sono in procinto di creare un modulo di nodo nativo su Windows, ma ogni volta che eseguo il comando node-gyp build binding.gyp ottengo un errore che indica "error: Can't find "msbuild.exe". Do you have Microsoft Visual Studio C++ 2008 installed?". Ho installato Visual Studio 2013 e la directory msbuild è C:\Windows\Microsoft.NET\Framework\v3.5\msbuild.exe. Ho provato ad aggiungerlo alla variabile PATH, e sono in grado di avviare un prompt cmd ed eseguire msbuild.exe e restituirà la versione in modo che sembra funzionare, ma per alcuni la ragione node-gyp non riesce a rilevarlo, ho anche provato a modificare il file build.js all'interno di node-gyp per farlo puntare al percorso di msbuild ma fallisce.Node-gyp non riesce a trovare msbuild.exe

+0

eventuali aggiornamenti su questo @Alan ?? – ShaMoh

+0

Questo è stato uno dei problemi in cui ho deciso di passare a un altro ambiente di sviluppo invece di risolverlo. Ora utilizzo cloud 9 – Alan

+0

Sto tentando di configurare l'app sul computer locale. Qualche suggerimento su come risolvere questo ?? – ShaMoh

risposta

2

È possibile scaricare solo gli strumenti di compilazione

Microsoft creare strumenti 2013: http://www.microsoft.com/en-us/download/details.aspx?id=40760

cmd run per impostare flag globale di utilizzare la versione 2013:

npm config set msvs_version 2013 --global

dopo questo tutto dovrebbe tornare alla normalità e la ricostruzione di npm install/node-gyp funzionerà

+3

non ha funzionato per me – LoveAndHappiness

2

Ho usato m diverse correzioni per cercare di risolvere il problema. Le mie versioni sono: Nodejs 0.12.4 (64 bit), Git 2.5.3, NPM 2.10.1, Windows 7, e Visual Studio 2013. Nulla lavorato fino a quando ho provato questo comando:

npm install -g node-gyp 

Tuttavia, il prossimo volta che ho provato a farlo ho ricevuto lo stesso errore. Utilizzando

npm install -g --msvs_version=2013 node-gyp rebuild 

sembra funzionare in modo coerente.

Spero che questo aiuti qualcuno come ho visto molti problemi cercando di farlo funzionare in Windows.

2

Nel mio caso si stava dando seguito errore:

C:\Users\user\DemoApp2\node_modules\bufferutil>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild) else (node "" rebuild) 
gyp ERR! build error 
gyp ERR! stack Error: Can't find "msbuild.exe". Do you have Microsoft Visual Studio C++ 2008+ installed? 
gyp ERR! stack  at findMsbuild (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:128:23) 
gyp ERR! stack  at C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:110:11 
gyp ERR! stack  at F (C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:69:16) 
gyp ERR! stack  at E (C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:81:29) 
gyp ERR! stack  at C:\Program Files\nodejs\node_modules\npm\node_modules\which\which.js:90:16 
gyp ERR! stack  at C:\Program Files\nodejs\node_modules\npm\node_modules\which\node_modules\isexe\index.js:44:5 
gyp ERR! stack  at C:\Program Files\nodejs\node_modules\npm\node_modules\which\node_modules\isexe\windows.js:29:5 
gyp ERR! stack  at FSReqWrap.oncomplete (fs.js:123:15) 
gyp ERR! System Windows_NT 10.0.10240 
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" 
gyp ERR! cwd C:\Users\user\DemoApp2\node_modules\bufferutil 
gyp ERR! node -v v6.3.1 
gyp ERR! node-gyp -v v3.3.1 
gyp ERR! not ok 
npm WARN install:[email protected] [email protected] install: `node-gyp rebuild` 
npm WARN install:[email protected] Exit status 1 

[email protected] install C:\Users\user\DemoApp2\node_modules\utf-8-validate 
node-gyp rebuild 

così ho seguito i passaggi qui sotto per risolvere il problema:

  1. In primo luogo scaricare e installare Microsoft strumenti di generazione 2013 da:
    http://www.microsoft.com/en-us/download/details.aspx?id=40760 e eseguire npm config set msvs_version 2013 --global come suggerito da catalint.
  2. eliminare la cartella .npm-gyp sotto C:\Users\user
  3. eseguire npm install -g fs --save-dev
  4. Copiare la cartella fs scaricato C:\Users\user\AppData\Roaming\npm\node_modules-$nodehome\node_modules\npm\node_modules (Nota: Nel mio caso la sua C:\Program Files\nodejs\node_modules\npm\node_modules)
  5. eseguire npm install --msvs_version=2013 node-gyp rebuild

Dopo aver fatto i passi precedenti ho smesso di avere errori di compilazione

+1

Non utilizzare blockquote per errori, utilizzare blocchi di codice per preservare la formattazione. –