node.js - docs - node js install documentation




Não é possível instalar módulos de nó que exigem compilação no Windows 7 x64/VS2012 (12)

  1. Instalar o Python 2.7 (não 3.x)
  2. Adicione o caminho ao diretório que contém o vcbuild.exe na sua variável de ambiente PATH
  3. Se você precisar do vcbuild.exe aqui https://github.com/kin9puppy/vcbuildFixForNode

Não consigo instalar nenhum dos módulos que exigem compilação. Todos eles falham com o seguinte erro:

MSBUILD : error MSB3411: Could not load the Visual C++ component "VCBuild.exe". ...

Meu ambiente:

  • Windows 7 Enterprise x64, versão 6.1.7601
  • nó x86 0.8.16
  • npm 1.2.0
  • nó-gyp 0.8.2
  • Visual Studio 2012 e vários pacotes

Variáveis ​​de ambiente relacionadas:

Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShel l\v1.0;C:\Program Files\TortoiseGit\bin;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\;C:\Program Files (x86)\Windows Kits\8.0\Windows Performance Toolkit\;C:\Program Files\Microsoft SQL Server\110\Tools\Binn\;c:\tools;c:\tools\node

Não incluem, LIB, LIBPATH, etc.

Fiz uma breve investigação do problema e descobri que, com a seguinte configuração, a compilação manual (chamando VCBuild.exe e msbuild.exe diretamente) teve êxito para o git: //github.com/einaros/ws.git clonado manualmente:

SET Configuration=Release
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcpackages
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\bin;%PATH%
SET PATH=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\Common7\IDE;%PATH%
SET PATH=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
SET PATH=%SystemRoot%\system32;%PATH%

SET INCLUDE=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\include
SET INCLUDE=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Include;%INCLUDE%

SET LIB=%ProgramFiles(x86)%\Microsoft SDKs\Windows\v7.1A\Lib
SET LIB=%ProgramFiles(x86)%\Microsoft Visual Studio 11.0\VC\lib;%LIB%

SET MSBUILD="%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\msbuild.exe"

VCBuild.exe C:\Tools\node\ws\build\bufferutil.vcproj "Release|Win32" /useenv
VCBuild.exe C:\Tools\node\ws\build\validation.vcproj "Release|Win32" /useenv
%MSBUILD% build/binding.sln /verbosity:diagnostic /nologo /p:Configuration=Release;Platform=Win32

Eu tentei chamar o node-gyp com as mesmas variáveis ​​e ele falhou:

C:\!> git clone https://github.com/einaros/ws.git
C:\!> cd ws
C:\!\ws>node-gyp configure
...
C:\!\ws>node-gyp build
gyp info it worked if it ends with ok
gyp info using node-[email protected].8.2
gyp info using [email protected].8.16 | win32 | ia32
gyp info spawn C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe
gyp info spawn args [ 'build/binding.sln',
gyp info spawn args   '/clp:Verbosity=minimal',
gyp info spawn args   '/nologo',
gyp info spawn args   '/p:Configuration=Release;Platform=Win32' ]
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
C:\Users\User\.node-gyp\0.8.16\deps\uv\include\uv.h(55): fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory [C:\!\
ws\build\binding.sln]
C:\Users\User\.node-gyp\0.8.16\deps\uv\include\uv.h(55): fatal error C1083: Cannot open include file: 'stdint.h': No such file or directory [C:\!\
ws\build\binding.sln]
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (c:\Tools\node\node_modules\node-gyp\lib\build.js:255:23)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:99:17)
gyp ERR! stack     at Process._handle.onexit (child_process.js:678:10)
gyp ERR! System Windows_NT 6.1.7601
gyp ERR! command "c:\\Tools\\node\\\\node.exe" "c:\\Tools\\node\\node_modules\\node-gyp\\bin\\node-gyp.js" "build"
gyp ERR! cwd C:\!\ws
gyp ERR! node -v v0.8.16
gyp ERR! node-gyp -v v0.8.2
gyp ERR! not ok

Talvez você tenha algumas idéias sobre isso?

Obrigado.


Após DAYS de escavar, alguém no IRC sugeriu que eu tentasse usar o

Windows 7.1 SDK Command Prompt

Atalho (links para C: \ Windows \ System32 \ cmd.exe / E: ON / V: ON / T: 0E / K "C: \ Arquivos de Programas \ Microsoft SDKs \ Windows \ v7.1 \ Bin \ SetEnv.cmd" ). Eu acho que você deve ter o SDK 7.1 mais antigo (mesmo no Windows 8.1) porque os mais novos usam msbuild.exe em vez de vcbuild.exe, que é o que o nó-gyp quer, embora seja duas vezes mais velho que o nó neste momento: /

Uma vez nesse prompt, eu tive que executar o seguinte para obter o contexto x86 porque o compilador estava lançando como erro, caso contrário, sobre arquitetura:

setenv.cmd /Release /x86

ENTÃO eu consegui executar com sucesso comandos npm que estavam tentando usar o node-gyp para recompilar as coisas.


Basta adicionar --msvs_version = 2012

node-gyp rebuild --msvs_version=2012

ou

node-gyp configure --msvs_version=2012
node-gyp build 

Depois de uma longa luta, mudei a arquitetura do nó para x86 e funcionou como um encanto.



Eu também tive um monte de problemas para compilar o nodejs zmq.

Para o problema com vcbuild.exe, basta adicioná-lo ao PATH

Para outros problemas eu poderia compilar apenas usando Windows 7.1 SDK Command Prompt

(Programas de menu -> Microsoft Windows SDK v7.1 -> Prompt de comando do SDK do Windows 7.1)

E no prompt:

npm install zmq

Isso funciona :)



Graças a @felixrieseberg , você só precisa instalar o pacote windows-build-tools npm e está pronto .

npm install --global --production windows-build-tools

Você não precisará instalar o Visual Studio.

Você não precisará instalar o Microsoft Build Tools.

Do repo:

Após a instalação, o npm executará automaticamente este módulo, que baixa e instala o Visual C ++ Build Tools 2015, fornecido gratuitamente pela Microsoft. Essas ferramentas são necessárias para compilar módulos nativos populares. Ele também instalará o Python 2.7, configurando sua máquina e npm apropriadamente.

Windows Vista / 7 requer o .NET Framework 4.5.1 (atualmente não instalado automaticamente por este pacote)

Ambas as instalações são livres de conflitos, o que significa que não mexem com as instalações existentes do Visual Studio, do C ++ Build Tools ou do Python.


Para fazer isso sem a instalação do VS2010 e apenas 2012, defina o sinalizador msvs_version:

node-gyp rebuild --msvs_version=2012

npm install <module> --msvs_version=2012

de acordo com o comentário do @Jacob

npm install --msvs_version=2013 se você tiver a versão 2013


Para o windows 8 de 64 bits, instalando zmq e protobuf, o seguinte funcionou para mim: Instalar o Visual Studio 2012 Na linha de comando:

SET VisualStudioVersion=11.0
npm install zmq
npm install protobuf

em cmd definir caminho do Visual Studio, dependendo da versão ur como

Visual Studio 2010 (VS10): SET VS90COMNTOOLS=%VS100COMNTOOLS%

Visual Studio 2012 (VS11): SET VS90COMNTOOLS=%VS110COMNTOOLS%

Visual Studio 2013 (VS12): SET VS90COMNTOOLS=%VS120COMNTOOLS%

No nó-mestre (módulo de nó original baixado do git) execute vcbuild.bat com privilégios de administrador. O vcbild.bat irá gerar dependências relacionadas ao Windows e incluirá o nome da pasta Release no nó mestre

Uma vez executado, levará tempo para construir os arquivos.

Então, no diretório que tem o comando .gyp use use

node-gyp rebuild --msvs_version=2012 --nodedir="Dive Name:\path to node-master\node-master"

isso irá construir todas as dependências.


no windows 8, funcionou para mim usando:

npm install -g node-gyp -msvs_version=2012

então

npm install -g restify




node-gyp