Windows_NT 6.1.7600(x86)中bcrypt模块的node-gyp构建错误

时间:2014-11-20 08:05:03

标签: node.js windows-7 node-gyp

我发现许多答案就像一个问题,但所有这些答案都无法解决我的问题。以下是我安装的版本:

node 0.10.31
npm 1.4.23
node-gyp 0.10.31
bcrypt 0.7.8 

我在package.json "bcrypt": "0.7.x"中有依赖。以下是我的一步一步:

1)运行npm install

gyp ERR! stack Error: Can't find Python executable "python", you can
set the PYTHON env variable.

我必须安装Python 2.7。*

2)运行npm install

MSBUILD : error MSB3428: Could not load the Visual C++ component
"VCBuild.exe". To fix this,  1) install the .NET Framework 2.0 SDK, 
2) install Microsoft Visual Studio 2005 or 3) add the location of the
component to the system path if it is installed elsewhere.  

我必须安装Visual Studio 2008(Professional),这是我手中唯一的。我添加了PATH变量C:\Program Files\Microsoft Visual Studio 9.0\VC\vcpackages,其中 vcbuild.exe

3)再次运行npm install

VCBUILD : error Message: [D:\...\node_modules\bcrypt\build\binding.sln]  
VCBUILD : System error : -2147154687. [D:\...\node_modules\bcrypt\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  

似乎使用.NET 4并且失败了。我在C:\Windows\Microsoft.NET\Framework中有六个.NET框架文件夹,它似乎使用了最新的文件夹:

  • 1.0.3705
  • V1.1.4322
  • V2.0.50727
  • 3.0
  • V3.5
  • v4.0.30319

4)尝试npm install --msvs_version=2008

(2)相同的错误。

5)尝试npm install --msvs_version=2012

错误改变了一点。

D:\...\node_modules\bcrypt\build\bcrypt_lib.vcxproj(18,3): error MSB4019: The imported 
project "D:\Microsoft.Cpp.Default.props" was not found. Confirm that the path in the 
<Import> declaration is correct, and that the file exists on disk.  
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe` 
failed with exit code: 1

6)尝试了node-gyp rebuild

D:\...\node-proj>node-gyp rebuild --msvs_version=2008
'node-gyp' is not recognized as an internal or external command, 
operable program or batch file.

对此有什么想法吗?

1 个答案:

答案 0 :(得分:6)

我关注the Windows installation step for node-gyp并安装Microsoft Visual Studio C++ 2010 Express解决了问题,除了一些警告。我确实看到了在控制台消息中创建的库。

enter image description here

构建过程似乎在寻找由Visual Studio C ++ 2010 Express安装的[Drive]:\Program Files\Microsoft Visual Studio 10.0\VC\vcpackages\vcbuild.dll

首先我安装了Microsoft Visual Studio C++ 2012/13 for Windows Desktop,这是Windows7 / 8的要求之一。 但它实际上并不起作用,对Windows 7来说没有必要

结论

Windows 7 32位node-gyp要求(Windows 7/8 64位可能有不同的要求):

  • Python v2.7.3(不支持v3.x.x)
  • Windows XP / Vista / 7:
    • Microsoft Visual Studio C ++ 2010(Express版本运行良好)
    • 对于64位构建的节点和本机模块,您还需要Windows 7 64-bit SDK
      • 如果安装失败,请尝试卸载先安装的任何C ++ 2010 x64&amp; x86 Redistributable。
    • 如果您收到未安装64位编译器的错误,您可能还需要compiler update for the Windows SDK 7.1
  • Windows 7/8:
    • 适用于Windows桌面的Microsoft Visual Studio C ++ 2012/13(Express版本运行良好)

这不仅是bcrypt的要求,也是需要使用node-gyp构建的所有节点模块的要求。如果检查模块的配置文件,您将看到其要求,例如,您可以检查以下文件:

  • \node_modules\bcrypt\build\binding.sln
  • \node_modules\bcrypt\build\config.gypi