在Windows 10中安装npm模块'bcrypt'时出错,并在Sails中抛出错误。

9

我有一个使用 'bcrypt' 模块的 sails 项目,当我尝试使用命令安装它时 -

npm install --save bcrypt  

但是它给了我以下错误!!!。同时我使用的是npm版本@3.6.0和node版本@5.6.0。我无法解决下面显示的错误:

 > bcrypt@0.8.5 install C:\Users\vikas\Documents\batua-web\node_modules\bcrypt  
 > node-gyp rebuild  
 > C:\Users\vikas\Documents\batua-web\node_modules\bcrypt>if not defined npm_config_node_gyp (node "C:\Program Files (x86)\nodejs\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.  
 > C:\Users\vikas\Documents\batua-web\node_modules\bcrypt\build\bcrypt_lib.vcxproj(20,3): error MSB4019: The imported project "C:\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:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1  
> gyp ERR! stack     at ChildProcess.onExit (C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\node-gyp\lib\build.js:276:23)  
> gyp ERR! stack     at emitTwo (events.js:100:13)  
> gyp ERR! stack     at ChildProcess.emit (events.js:185:7)  
> gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)  
> gyp ERR! System Windows_NT 10.0.10586  
> gyp ERR! command "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-     gyp.js" "rebuild"  
> gyp ERR! cwd C:\Users\vikas\Documents\batua-web\node_modules\bcrypt  
> gyp ERR! node -v v5.6.0  
> gyp ERR! node-gyp -v v3.2.1  
> gyp ERR! not ok  
> npm ERR! Windows_NT 10.0.10586  
> npm ERR! argv "C:\\Program Files (x86)\\nodejs\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "--save" "bcrypt"  
> npm ERR! node v5.6.0  
> npm ERR! npm  v3.6.0  
> npm ERR! code ELIFECYCLE  
> npm ERR! bcrypt@0.8.5 install: `node-gyp rebuild`  
> npm ERR! Exit status 1  
> npm ERR!  
> npm ERR! Failed at the bcrypt@0.8.5 install script 'node-gyp rebuild'.  
> npm ERR! Make sure you have the latest version of node.js and npm installed.  
> npm ERR! If you do, 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 information on how to open an issue for this project with:  
> npm ERR!     npm bugs bcrypt  
> npm ERR! Or if that isn't available, you can get their info via:  
> npm ERR!     npm owner ls bcrypt  
> npm ERR! There is likely additional logging output above.  
> npm ERR! Please include the following file with any support request:  
> npm ERR!     C:\Users\vikas\Documents\batua-web\npm-debug.log  

1
很可能您没有安装适当的构建环境。此外,将来您应该粘贴错误文本到您的问题中,而不是链接到一个图片,这是不可搜索的。如果图片链接损坏,未来的访问者将不知道错误是什么。 - mscdex
1
谢谢@mscdex,下次我会注意这些事情的。 - Vikash_Singh
4个回答

5

我尝试了另一种在Windows 10上解决此问题的方法,希望可以帮到你。
第一步:以管理员身份运行Powershell(右键单击Powershell并选择“以管理员身份运行”)
第二步:安装本地插件构建工具Windows-Build-Tools

 npm install -g node-gyp
 npm install --g --production windows-build-tools

第三步:切换到当前项目的目录
第四步:安装bcrypt

 npm install bcrypt

4
从日志中我看到你正在使用Windows操作系统。
node-gyp的GitHub页面上,它说你需要以下内容:
- 在Windows上:
- Python(推荐[版本2.7.10][python-v2.7.10],不支持v3.x.x)
- 确保你有一个PYTHON环境变量,并且它设置为驱动器:\path\to\python.exe,而不是文件夹
- Windows XP/Vista/7:
- Microsoft Visual Studio C++ 2013([Express][msvc2013]版本很好用) - 如果安装失败,请先卸载任何已安装的C++ 2010 x64和x86 Redistributable - 如果你收到64位编译器未安装的错误,你可能还需要[Windows SDK 7.1的编译器更新]
- Windows 7/8:
- Microsoft Visual Studio C++ 2013 for Windows Desktop([Express][msvc2013]版本很好用)
- Windows 10:
- 安装最新版本的npm(本文撰写时为3.3.6) - 从https://www.python.org/download/releases/2.7/安装Python 2.7,并确保它在系统路径上 - 安装Visual Studio Community 2015 Edition(自定义安装,在安装过程中选择Visual C++) - 设置环境变量GYP_MSVS_VERSION=2015 - 以管理员身份运行命令提示符 - $ npm install (--msvs_version=2015) <-- 如果已设置GYP_MSVS_VERSION环境,则不需要此步骤 - 如果上述步骤没有起作用或者你不确定,请访问http://www.serverpals.com/blog/building-using-node-gyp-with-visual-studio-express-2015-on-windows-10-pro-x64进行完整的演示
- 所有Windows版本
- 对于node和本地模块的64位构建,你还需要[Windows 7 64位SDK][win7sdk] - 如果你的构建抱怨WindowsSDKDir未设置,并且你确定已经安装了SDK,则可能需要运行以下命令之一:

对于其他操作系统,您可以访问链接以查看它们的依赖项。


1
在您的Windows机器上安装Python,这将绝对解决此问题。

-1

首先运行命令安装Python,因为bcrypt是一个需要编译的附加组件。

sudo apt-get install build-essential python2.7

或者

sudo apt install build-essential

然后运行

npm install bcrypt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接