2016-11-18 129 views
0

在Windows 10节点:v6.7.0,npm:v4.0.1 node-gyp:v3.4.0,我试图npm install --save bcrypt,我面对这些错误。这是我的路径中的python27和python35-32。npm安装bcrypt,gyp ERR!蟒蛇

D:\myApp\node_modules\bcrypt>if not defined npm_config_node_gyp (node "C:\Users\myname\AppData\Roaming\npm\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild) else (node "" rebuild) 
gyp ERR! configure error 
gyp ERR! stack Error: Python executable "C:\Users\myname\AppData\Local\Programs\Python\Python35-32\python.EXE" is v3.5.2, which is not supported by gyp. 
gyp ERR! stack You can pass the --python switch to point to Python >= v2.5.0 & < 3.0.0. 
gyp ERR! stack  at failPythonVersion (C:\Users\Amirhossein\AppData\Roaming\npm\node_modules\npm\node_modules\node-gyp\lib\configure.js:454:14) .... 

我试着用npm install --save --python=phyton2.7 bcrypt

似乎确定安装,但完成有很多警告的安装:

D:\myApp\node_modules\bcrypt>if not defined npm_config_node_gyp (node "C:\Users\myname\AppData\Roaming\npm\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild) else (node "" rebuild) 
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch. 
    blowfish.cc 
    bcrypt.cc 
    bcrypt_node.cc 
    win_delay_load_hook.cc 
..\src\bcrypt.cc(232): warning C4267: '=': conversion from 'size_t' to 'unsigned char', possible loss of data [D:\myApp\node_modules\bcrypt\build\bcrypt_lib.vcxproj] 
..\src\bcrypt_node.cc(76): warning C4244: 'argument': conversion from 'ssize_t' to 'unsigned char', possible loss of data [D:\myApp\node_modules\bcrypt\build\bcrypt_lib.vcxproj] 
..\src\bcrypt_node.cc(229): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data [D:\myApp\node_modules\bcrypt\build\bcrypt_lib.vcxproj] 
..\src\bcrypt_node.cc(230): warning C4267: 'initializing': conversion from 'size_t' to 'int', possible loss of data [D:\myApp\node_modules\bcrypt\build\bcrypt_lib.vcxproj] 

将它正常工作?什么是安装bcrypt的正确方法?我应该修改node-gyp的配置吗?

回答

2

最简单的办法:沟蟒蛇bcrypt和使用bcrypt-的NodeJS代替:https://github.com/shaneGirish/bcrypt-nodejs

+1

这是功能等效吗? –

+1

恕我直言,如果你不关心性能,那就没问题了(是的,我知道bcrypt的用途,但在纯JavaScript中进行bcrypt时仍然存在不必要的性能问题)。 – mscdex

-1

如果只有警告,没有编译错误(这将是显而易见的,因为你会看到从NPM文本块告诉你安装插件时出现问题),那么它应该工作得很好。

0

如果您打算开始加密bcrypt,我会建议使用bcryptjs,它与bcrypt与零依赖关系兼容。 是的,那会产生一个performance hit,但是如果你没问题,它会让你脱离node-gyp重建地狱。