2013-01-06 32 views
46

Quando si tenta di installare alcuni pacchetti node.js (sqlite3 e socket.io in particolare) utilizzando npm install socket.io sul mio computer Windows 7 con Visual Studio 2012 (e non 2010) ho avuto alcuni guasti che si presentava così:installazione di npm per alcuni pacchetti (sqlite3, socket.io) errore con errore MSB8020 su Windows 7

C: \ Program Files (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.Cpp.Platform.targets (35,5): errore MSB8020: non è stato possibile trovare gli strumenti di build per Visual Studio 2010 (piattaforma Toolset = 'v100'). Per creare utilizzando gli strumenti di build v100, fare clic sul menu Progetto o fare clic con il pulsante destro del mouse sulla soluzione e su quindi selezionare "Aggiorna progetti VC++ ...". Installare Visual Studio 2010 su build utilizzando gli strumenti di compilazione di Visual Studio 2010.

risposta

82

Per aggirare il problema sulla mia macchina ho fatto questo comando per installare il pacchetto:

npm install socket.io --msvs_version=2012

ho trovato la risposta here quando avere il problema con l'installazione sqlite3 e ha funzionato con socket.io anche.

Questi potrebbero essere più soluzioni permanenti per risolvere il problema:

  1. Installare Visual Studio 2010
  2. Aggiornamento del copia interna NPM ad una versione più recente di nodo-gyp come descritto here e here (probabilmente il migliore opzione anche se non ho capito di lavoro, ma non ho provato troppo a lungo)
+0

Sì, per quello che ha funzionato, anche se dovevo aggiornare il nodo interno-gyp, questo funzionerà anche per i mongojs e parecchi altri problemi quando si utilizza vs2012. – Idistic

+1

Grazie. Ho perso ore cercando di capire cosa c'era che non andava. – Joe

+0

ha funzionato perfettamente, bello – Shuliyey

75

Un'altra opzione è quella di cambiare config invece di specificare msvs_version ogni volta:

npm config set msvs_version 2012 
+1

Grazie! Sono tornato qui per vedere se qualcuno avrebbe potuto dirlo. Mi sono stancato di aggiungere l'interruttore ogni volta. – Krummelz

+0

Questo ha funzionato per me quando si tenta di installare contextify in VS2013. –

+7

Ho installato VS 2013 e così ho usato questo: 'npm config set msvs_version 2013' –

2

Ho installato Visual Studio Express 2013 e Visual Studio Community 2015.

mi è stato sempre C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.Cpp.Platform.targets(64,5): error MSB8020: The build tools for v140 (Platform Toolset = 'v140') cannot be found. To build using the v140 build tools, please install v140 build tools. Alternatively, you may upgrade to the current Visual Studio tools by selecting the Project menu or right-click the solution, and then selecting "Upgrade Solution...". [G:\work\cinema\node_modules\engine.io\node_modules\bufferutil\build\bufferutil.vcxproj]

Il motivo era che le ultime Node.js per Windows scaricati da https://nodejs.org contiene un vecchio npm v2 (e vecchi node-gyp all'interno che npm v2).

ho dovuto aggiornare Node.js'es interna npm (che ha anche aggiornato node-gyp):

(open console as an administrator) 
cd "C:\Program Files\nodejs" 
npm install [email protected] 

npm config set msvs_version 2013 

Ora funziona (pare che si tratta di utilizzare VS 2013 per il momento)

+0

npm config set msvs_version 2015 ha funzionato! le versioni dell'anno precedente no. –

+1

Ho installato VS 2015 e Node.js 5.1.1. L'impostazione di 'npm config set msvs_version 2015' non ha risolto il problema per me. La mia correzione era di creare un collegamento simbolico per il percorso che l'installazione di npm non riusciva a trovare (errore npm MSB4019: il progetto importato "C: \ Programmi (x86) \ MSBuild \ Microsoft.Cpp \ v4.0 \ V110 \ Microsoft.Cpp. Default.props "non è stato trovato). Aprire un prompt dei comandi e immettere 'cd C: \ Programmi (x86) \ MSBuild \ Microsoft.Cpp \ v4.0' e quindi' mklink/d V110 V140'. – reverentgeek

0

TL; DR

Se nON voler node-gyp dipendere la versione installata di Visual Studio (o non hanno installato VS), installare windows-build-tools (vedi essere Basso). Ciò eliminerà sia l'errore che dovrebbe evitare problemi futuri durante l'aggiornamento della versione installata di Visual Studio.

Se FARE vogliono node-gyp a dipendere dalla versione installata di Visual Studio, quindi npm config set msvs_version 2015, sostituire il tag versione al posto di 2015. versioni valide tag sono: 2015, 2014, 2013, 110, 100


Fissaggio con windows-build-tools

Per il node-gyp installation instructions, si può anche fare

npm install --global --production windows-build-tools da un guscio comando ELEVATA

Questo installerà il rigorosamente gli strumenti di creazione Microsoft Visual C++ (che verranno utilizzati al posto di Visual Studio per la compilazione) richiesti da node-gyp e impostare correttamente msvs_version sulla versione appena installata.

Dopo l'installazione, è necessario verificare che il set msvs_version impostato da windows-build-tools non sia stato sovrascritto. Quando si esegue npm config list, msvs_version dovrebbe apparire sotto ; globalconfig C:\Users\Username\AppData\Roaming\npm\etc\npmrc; in caso contrario, il valore impostato da windows-build-tools è stato sostituito e il valore sostituito dovrebbe essere eliminato. npm config delete msvs_version dovrebbe eliminare il valore sottoposto a override e quello impostato dagli strumenti di compilazione dovrebbe apparire sotto la sezione di configurazione globale.

Problemi correlati