[node.js] Windows 7 x64 / VS2012에서 컴파일이 필요한 노드 모듈을 설치할 수 없습니다

컴파일이 필요한 모듈을 설치할 수 없습니다. 모두 다음과 같은 오류로 실패합니다.

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

내 환경 :

  • Windows 7 Enterprise x64, 버전 6.1.7601
  • 노드 x86 0.8.16
  • npm 1.2.0
  • 절점 0.8.2
  • Visual Studio 2012 및 수많은 패키지

관련 환경 변수 :

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

INCLUDE, LIB, LIBPATH 등이 없습니다.

나는이 문제에 대한 짧은 조사를 수행하고 다음 설정을 사용하여 수동으로 복제 된 git : //github.com/einaros/ws.git에 대한 수동 컴파일 (VCBuild.exe 및 msbuild.exe를 직접 호출)이 성공한다는 것을 알았습니다.

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

동일한 변수로 node-gyp를 호출하려고 시도했지만 실패했습니다.

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-gyp@0.8.2
gyp info using node@0.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

어쩌면 그것에 대해 몇 가지 아이디어가 있습니까?

감사.



답변

시도해보십시오-전 세계적으로 설정합니다.

npm config set msvs_version 2012 --global


답변

VS2010을 설치하지 않고 2012 만 사용하려면 msvs_version 플래그를 설정하십시오.

node-gyp rebuild --msvs_version=2012

npm install <module> --msvs_version=2012

@Jacob 의견에 따라

npm install --msvs_version=2013 2013 버전이 있다면


답변

v3 업데이트 :
https://www.npmjs.com/package/windows-build-tools

npm install –global windows-build-tools

Microsoft에서 무료로 제공하는 Visual C ++ Build Tools 2015를 다운로드하여 설치합니다. 이러한 도구는 널리 사용되는 기본 모듈을 컴파일하는 데 필요합니다. 또한 컴퓨터와 npm을 적절히 구성하여 Python 2.7을 설치합니다.

v2 업데이트 :

node-gyp 가 Windows 용 HOW-TO 를 포함하도록 readme를 업데이트했습니다 .

실물:

전체 Visual Studio가 필요하지 않으며 빌드 도구 만 다운로드 할 수 있습니다.

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

cmd를 실행하여 2013 버전을 사용하도록 전역 플래그를 설정하십시오.

npm config set msvs_version 2013 --global

이 후 모든 것이 정상으로 돌아가고 npm 설치 / node-gyp 재 구축이 작동합니다.


답변

–msvs_version = 2012를 추가하십시오.

node-gyp rebuild --msvs_version=2012

또는

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


답변

Node.js 용 패키지를 설치하려고 할 때도 같은 문제가있었습니다. 광범위한 googeling 후 나는이 walktrough를 발견했다 : https://github.com/TooTallNate/node-gyp/wiki/Visual-Studio-2010-Setup

이 단계를 수행했을 때 아무런 문제없이 “npm install”을 사용할 수있었습니다.


답변

@felixrieseberg 덕분에 windows-build-tools npm 패키지 를 설치 하기 만하면 됩니다.

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

Visual Studio를 설치할 필요가 없습니다.

Microsoft Build Tools를 설치할 필요가 없습니다.

레포에서 :

설치 후 npm은이 모듈을 자동으로 실행하여 Microsoft에서 무료로 제공하는 Visual C ++ Build Tools 2015를 다운로드하여 설치합니다. 이러한 도구는 널리 사용되는 기본 모듈을 컴파일하는 데 필요합니다. 또한 컴퓨터와 npm을 적절히 구성하여 Python 2.7을 설치합니다.

Windows Vista / 7에는 .NET Framework 4.5.1이 필요합니다 (현재이 패키지에서 자동으로 설치되지 않음)

두 설치 모두 충돌이 없으므로 기존 Visual Studio, C ++ 빌드 도구 또는 Python 설치를 망칠 필요가 없습니다.


답변

Windows 8에서는 다음을 사용하여 나를 위해 일했습니다.

npm install -g node-gyp -msvs_version=2012

그때

npm install -g restify