2218
windows8.1環境で、node.js sailsを触っていました。
参考サイトを元に認証処理を実装していましたが、bcryptという認証モジュールがないため、npm install bcryptを実行しました（当方Git
Shellを使用して、PowerShell上で作業を実行しています）。

最初はpythonがversion3.0超えだったためエラーでとまりました。
アンインストールし、pythonサイトから直接python2.7をダウンロード→インストールし、そこは解決しました。 また、node-
gypもnpmでinstallしました。

ここまでで、エラー内容は変わったのですが、以前エラーです。 以下のサイト（英語）でも同様のエラーがでているとの報告がでていますが、
解決まで至っていない模様。Windows8環境では難しいのでしょうか？ dockerでcentos環境を構築して、その中でやったほうが賢いでしょうかね。。。

<https://github.com/ncb000gt/node.bcrypt.js/issues/255>
CC BY-SA 3.0
2014-12-20T04:47:12.447
2208
2014-12-20T08:21:15.177
5336
question
npm node.js
npm install bcrypt 環境 surface pro2(windows8.1)　でエラー。
はじめまして。 エラーがわかりませんが、私の環境では最終的に以下の様になりインストールに成功したように見えます。

**追記**

すみません、環境を書き忘れてました。

OSはWindows 8.1 pro, (powershellではなく)コマンドプロンプトから行いました。

* * *
```

    M:\bcrypt>npm list
    M:\bcrypt
    └─┬ bcrypt@0.8.0
      ├── bindings@1.0.0
      └── nan@1.3.0
    
```

pythonとnpmのバージョンは以下の通りです。

```

    M:\bcrypt>python -V
    Python 2.7.8
    
    M:\bcrypt>npm -v
    1.4.28
    
```

途中でpython 2.7が求められたということで気になったのは、VCのバージョンはなんでしょうか？ Windows上でpython
2.7モジュールのCのソースをコンパイルするにはVC 2008のコンパイラが必要になります。

現在ではMicrosoftから [Microsoft Visual C++ Compiler for Python 2.7
](http://www.microsoft.com/en-us/download/details.aspx?id=44266)

が提供されていますので、pythonモジュールのCコンパイルが原因であれば、こちらを導入してみると結果が変わるかもしれません。

(あと私の環境にはVisual Studio 2013も入っています。)

以下はインストール時の全ログです。

```

    M:\bcrypt>npm install bcrypt
    \
    > bcrypt@0.8.0 install M:\bcrypt\node_modules\bcrypt
    > node-gyp rebuild
    
    
    M:\bcrypt\node_modules\bcrypt>node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild
    このソリューション内のプロジェクトを 1 度に 1 つずつビルドします。並行ビルドを有効にするには、"/m" スイッチを追加してください。
      blowfish.cc
      bcrypt.cc
      bcrypt_node.cc
    ..\src\bcrypt.cc(232): warning C4267: '=' : 'size_t' から 'unsigned char' に変換しました。データが失われているかもしれません。 [M:\bcrypt\node_modules\bcrypt\bu
    ild\bcrypt_lib.vcxproj]
    C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include\xlocale(337): warning C4530: C++ 例外処理を使っていますが、アンワインド セマンティクスは有効には
    なりません。/EHsc を指定してください。 (..\src\
    bcrypt_node.cc) [M:\bcrypt\node_modules\bcrypt\build\bcrypt_lib.vcxproj]
    M:\bcrypt\node_modules\bcrypt\node_modules\nan\nan.h(1221): warning C4267: '引数' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。 (..
    \src\bcrypt_node.cc) [M:\bcry
    pt\node_modules\bcrypt\build\bcrypt_lib.vcxproj]
    M:\bcrypt\node_modules\bcrypt\node_modules\nan\nan.h(1247): warning C4267: '引数' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。 (..
    \src\bcrypt_node.cc) [M:\bcry
    pt\node_modules\bcrypt\build\bcrypt_lib.vcxproj]
    ..\src\bcrypt_node.cc(106): warning C4244: '引数' : 'ssize_t' から 'unsigned char' への変換です。データが失われる可能性があります。 [M:\bcrypt\node_modules\bcry
    pt\build\bcrypt_lib.vcxproj
    ]
    ..\src\bcrypt_node.cc(167): warning C4244: '引数' : 'const ssize_t' から 'unsigned char' への変換です。データが失われる可能性があります。 [M:\bcrypt\node_module
    s\bcrypt\build\bcrypt_lib.v
    cxproj]
    ..\src\bcrypt_node.cc(261): warning C4267: '初期化中' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。 [M:\bcrypt\node_modules\bcrypt\
    build\bcrypt_lib.vcxproj]
    ..\src\bcrypt_node.cc(262): warning C4267: '初期化中' : 'size_t' から 'int' に変換しました。データが失われているかもしれません。 [M:\bcrypt\node_modules\bcrypt\
    build\bcrypt_lib.vcxproj]
    C:\Users\UserName\.node-gyp\0.10.32\deps\v8\include\v8.h(179): warning C4506: インライン関数 'v8::Persistent<v8::Object> v8::Persistent<v8::Object>::New(v8::Han
    dle<v8
    ::Object>)' は定義されていません。 (..\src\bcrypt_node.cc) [M:\bcrypt\node_modules\bcrypt\build\bcrypt_lib.vcxproj]
         ライブラリ M:\bcrypt\node_modules\bcrypt\build\Release\bcrypt_lib.lib とオブジェクト M:\bcrypt\node_modules\bcrypt\build\Release\bcrypt_lib.exp を作成中
      コード生成しています。
      コード生成が終了しました。
      bcrypt_lib.vcxproj -> M:\bcrypt\node_modules\bcrypt\build\Release\\bcrypt_lib.node
    bcrypt@0.8.0 node_modules\bcrypt
    ├── bindings@1.0.0
    └── nan@1.3.0
    
    M:\bcrypt>
    
```
CC BY-SA 3.0
2014-12-20T07:27:48.250
2218
2014-12-20T08:21:15.177
2014-12-20T08:21:15.177
5335
5335
2208
answer