web-dev-qa-db-ja.com

bcryptのコンパイルエラー-node.js

Windows 7 Ultimate x64を使用してnpm installからbycrptをインストールしようとしています。これは私のインストールログです:

D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_modules\bcrypt>node "C:\Program File
s\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node
-gyp.js" rebuild
npm http GET https://registry.npmjs.org/mime/1.2.6
npm http 304 https://registry.npmjs.org/coffee-script
npm http 304 https://registry.npmjs.org/mkdirp
npm http 304 https://registry.npmjs.org/cssom
npm http 304 https://registry.npmjs.org/hooks/0.2.1
npm http 304 https://registry.npmjs.org/mongodb/1.2.8
npm http 304 https://registry.npmjs.org/ms/0.1.0
npm http 304 https://registry.npmjs.org/sliced/0.0.3
npm http 304 https://registry.npmjs.org/muri/0.1.0
npm http 304 https://registry.npmjs.org/mime/1.2.6
npm http GET https://registry.npmjs.org/crc/0.2.0
npm http GET https://registry.npmjs.org/pause/0.0.1
npm http GET https://registry.npmjs.org/bytes/0.1.0
npm http GET https://registry.npmjs.org/formidable/1.0.11
npm http GET https://registry.npmjs.org/qs/0.5.1
npm http GET https://registry.npmjs.org/bson/0.1.5
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(29
7,5): warning MSB8003: Could not find WindowsSDKDir variable from the registry.
  TargetFrameworkVersion or PlatformToolset may be set to an invalid version nu
mber. [D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_modules\bcrypt\build\bcrypt_
lib.vcxproj]
  blowfish.cc
  bcrypt.cc
  bcrypt_node.cc
..\src\bcrypt.cc(232): warning C4267: '=' : conversion from 'size_t' to 'unsign
ed char', possible loss of data [D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_mo
dules\bcrypt\build\bcrypt_lib.vcxproj]
c:\users\timd\.node-gyp\0.8.18\deps\uv\include\ares.h(49): fatal error C1083: C
annot open include file: 'winsock2.h': No such file or directory [D:\Dropbox\Pr
ojekte\RZ\Finance-Man-GUI\node_modules\bcrypt\build\bcrypt_lib.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.e
xe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Program Files\nodejs\node_modules\
npm\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.7600
gyp ERR! command "node" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modu
les\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_modules\bcrypt
gyp ERR! node -v v0.8.18
gyp ERR! node-gyp -v v0.8.2
gyp ERR! not ok
npm ERR! [email protected] install: `node-gyp rebuild`
npm ERR! `cmd "/c" "node-gyp rebuild"` failed with 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the bcrypt package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node-gyp rebuild
npm ERR! You can get their info via:
npm ERR!     npm owner ls bcrypt
npm ERR! There is likely additional logging output above.

npm ERR! System Windows_NT 6.1.7600
npm ERR! command "C:\\Program Files\\nodejs\\\\node.exe" "C:\\Program Files\\nod
ejs\\node_modules\\npm\\bin\\npm-cli.js" "install"
npm ERR! cwd D:\Dropbox\Projekte\RZ\Finance-Man-GUI
npm ERR! node -v v0.8.18
npm ERR! npm -v 1.2.2
npm ERR! code ELIFECYCLE
npm http 304 https://registry.npmjs.org/crc/0.2.0
npm http 304 https://registry.npmjs.org/qs/0.5.1
npm http 304 https://registry.npmjs.org/pause/0.0.1
npm http 304 https://registry.npmjs.org/bson/0.1.5
npm http 304 https://registry.npmjs.org/formidable/1.0.11
npm http 304 https://registry.npmjs.org/bytes/0.1.0

> [email protected] install D:\Dropbox\Projekte\RZ\Finance-Man-GUI\node_modules\mongoos
e\node_modules\mongodb\node_modules\bson
> node install.js || (exit 0)

================================================================================

=                                                                              =

=  Attempting to build bson c++ extension                                      =

=   Windows: no build will be attempted as binaries are prepackaged            =

=   Unix: on failure the package will still install without the C++ extension  =

=                                                                              =

================================================================================

npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     D:\Dropbox\Projekte\RZ\Finance-Man-GUI\npm-debug.log
npm ERR! not ok code 0

私はすでにインストールしましたPython <v2.7および.NET Framework SDK2.0。win7sdkx64.exeというパッケージもダウンロードしました。これはVisual StudioのSDKだと思います。すべてのものが好きでした。次のように私のPathの依存関係:

%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;C:\Program Files\nodejs\;E:\Program Files\Java\jdk1.6.0_38\bin;C:\Program Files (x86)\Heroku\bin;C:\Program Files (x86)\Ruby-1.9.2\bin;C:\Program Files (x86)\git\bin;C:\Program Files (x86)\git\cmd;E:\Program Files (x86)\Heroku\bin;C:\mongodb-win32-x86_64-2.2.2\bin;E:\xampp\mysql\bin;E:\xampp\Apache\bin;E:\Python27;C:\Program Files (x86)\Microsoft Visual Studio 8\VC\vcpackages;C:\Program Files\Microsoft Windows Performance Toolkit\;E:\Program Files (x86)\openssl-0.9.8k_X64\bin

しかし、私はまだこれらのエラーが発生します。次に何を試すことができますか? Visual Studioを完全にインストールしますか?

24

Bcryptモジュールを破棄し、代わりにネイティブJavaScriptライブラリを使用します。 bcrypt-nodejs はコンパイルを必要とせず、コンパイルされたbcryptとほぼ同じ機能を提供します。

54
Noah

これはbcryptをnpmにWindows 7/8 x64にインストールする正しい方法です

事前:

  • インストールPython http://www.python.org/download/releases/2.7.5/
  • Visual Studio 2012/13 Express(またはその他)をインストールする
  • Windows SDKをインストールする(Windows 7/8の場合)
  • Win64 OpenSSL v1.0.1gをインストールする

役職:

管理者として "Developer Command Prompt for VS2012"を開き、インストールをテストします。

npm install node-gyp -g
npm install bcrypt -g

pS現在のWindows環境:win8 x64、ノード0.10.x。すべてうまくいきます。

UPDATE(2016):Windows 10 x64に関する注意

Visual Studio Express Desktop Edition はノードGypの問題を解決します。インストールするだけで、node-gypで動作します。

リンク:

37
diproart

2017年にbcryptのインストールでエラーが発生する場合

Felix Riesebergや他の貢献者によるWindowのネイティブ依存問題を処理するnpmモジュールがリリースされました。 .NET Framework 4.5.1は、Windows 7/Vistaの唯一の要件です。

管理者権限で、次を実行:

npm install --g --production windows-build-tools
npm install bcrypt
1
Ricky Boyce

これをどのように解決したか。

私の環境:Windows 8.1 x64、Node v0.12.2、npm v2.7.5

すべてのコンポーネントをインストールします:

  1. 最新の2.x Pythonをインストールします download Python (私は2.7.9をダウンロードしました)
  2. Visual Studio 2012/13 Express(またはその他)をインストールする
  3. Windows SDKをインストールする(Windows 7/8の場合)
  4. Win64 OpenSSL v1.0.1gをインストールし、それを here からダウンロードします(「Win64 OpenSSL v1.0.2a」を最新にロードしました)

すべてのコンポーネントがインストールされた後[重要]:

管理者として「VS2012の開発者コマンドプロンプト」を開きます。

[VS 2012の場合]に移動

C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\Tools

[VS 2013の場合]に移動

C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools

コマンド「VsDevCmd.bat」を実行します

次に、これらのコマンドを実行できます:

npm install node-gyp -g
npm install bcrypt -g

そして私にとってはうまくいきました(最初からコマンド "VsDevCmd.bat"を実行していないため、起動に問題があります)。

注:

  1. それでも実行されない場合は、管理者として開かれた単純なコマンドプロンプトでコマンドを実行してみてください。
  2. または、bcryptが正常にインストールされ、プロジェクトでnpm installを実行すると失敗します。 package.jsonでbcryptのバージョンを確認してください。私の場合、 "bcrypt": "0.7.x"依存関係が指定されており、新しいバージョンのbcryotがあるため、 "bcrypt": "0.8.x"に変更すると、すべてが正常にインストールされました。
1
Drasius

私が見るエラーを見て

c:\ users\timd.node-gyp\0.8.18\deps\uv\include\ares.h(49):致命的なエラーC1083:インクルードファイルを開けません: 'winsock2.h':そのようなファイルまたはディレクトリはありません

先に進む前に修正する必要があります。おそらく、あなたはこれを理解したか、それが1か月前から続いているかのいずれかです。

winsock2.hを見てください、そのようなファイルまたはディレクトリはありません

0
Nick Campbell