sails.js + npm模块'bcrypt'不安装在Windows 10中
我克隆了一个使用'bcrypt'模块的sails项目,当我试图用命令安装它时,
npm install --save bcrypt
但它给了我以下错误!!!还有我使用npm版本@ 3.6.0和节点版本@ 5.6.0.Am无法解决此错误如下所示:
> 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
我尝试了另一种方法来解决这个问题,我希望它能帮助你。
第一步:以pipe理员angular色运行Powershell(在Powershell上单击鼠标右键并select“以pipe理员身份运行”)
第二步:安装本地插件构build工具和Windows-Build-Tools
npm install -g node-gyp npm install --g --production windows-build-tools
第三步:将目录切换到当前项目
第四步:安装bcrypt
npm install bcrypt
从日志中我看到你正在使用Windows操作系统。
在这个node-gyp的github页面上 ,它说你需要具有以下内容
- 在Windows上:
- Python([
v2.7.10
] [python-v2.7.10]推荐,v3.xx
不支持)- 确保你有一个PYTHON环境variables,它被设置为驱动:\ path \ to \ python.exe而不是一个文件夹
- Windows XP / Vista / 7:
- Microsoft Visual Studio C ++ 2013([Express] [msvc2013]版本运行良好)
- 如果安装失败,请尝试卸载您先安装的任何C ++ 2010 x64&x86可再发行组件
- 如果您得到的错误是没有安装64位编译器,您可能还需要[Windows SDK 7.1的编译器更新]
- Windows 7/8:
- 用于Windows桌面的Microsoft Visual Studio C ++ 2013([Express] [msvc2013]版本运行良好)
- Windows 10:
- 安装最新版本的npm(3.3.6在撰写本文时)
- 从https://www.python.org/download/releases/2.7/安装Python 2.7,并确保它在系统path中
- 安装Visual Studio社区2015版。 (自定义安装,在安装过程中selectVisual C ++)
- 设置环境variablesGYP_MSVS_VERSION = 2015
- 以pipe理员身份运行命令提示符
- $ npm install(–msvs_version = 2015)< – 如果您已经设置了GYP_MSVS_VERSION env,则不需要
- 如果上述步骤没有奏效,或者您不确定,请访问http://www.serverpals.com/blog/building-using-node-gyp-with-visual-studio-express-2015-on-windows-10-pro -x64进行完整的演练
- 所有Windows版本
- 对于64位版本的节点和本地模块,您还需要[Windows 7 64位SDK] [win7sdk]
- 如果您的构build抱怨WindowsSDKDir没有设置,您可能需要运行以下命令之一,并确定您已经安装了SDK:
- Python([
对于其他操作系统,您可以访问该链接以查看其依赖关系。