Bcrypt संकलित करने में त्रुटि-node.js




npm (4)

मैं विंडोज 7 अल्टीमेट 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

मैंने पहले ही पाइथन <v2.7 और .NET Framework SDK 2.0 स्थापित कर लिया है। मैंने win7sdkx64.exe नामक एक पैकेज भी डाउनलोड किया जो मुझे लगता है कि विजुअल स्टूडियो के लिए एसडीके। मुझे अपने 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

लेकिन मुझे अभी भी ये त्रुटियां मिलती हैं। मैं आगे क्या कोशिश कर सकता हूँ? पूरी तरह से विजुअल स्टूडियो स्थापित करें?


मुझे देखे गए त्रुटि को देख रहे हैं

c: \ users \ timd.node-gyp \ 0.8.18 \ deps \ uv \ include \ ares.h (49): घातक त्रुटि C1083: फ़ाइल को शामिल नहीं किया जा सकता है: 'winsock2.h': ऐसी कोई फ़ाइल या निर्देशिका नहीं

आगे बढ़ने से पहले आपको इसे ठीक करने की आवश्यकता होगी। संभवतः, आपने या तो यह पता लगाया है या यह एक महीना होने के बाद से चले गए हैं।

Winsock2.h पर कोई नज़र डालें, ऐसी कोई फ़ाइल या निर्देशिका नहीं


Windows 7/8 x64 पर npm पर bcrypt इंस्टॉल करने का यह सही तरीका है

पूर्व:

  • पाइथन स्थापित करें http://www.python.org/download/releases/2.7.5/
  • विजुअल स्टूडियो 2012/13 एक्सप्रेस (या अन्य) स्थापित करें
  • विंडोज एसडीके स्थापित करें (विंडोज़ 7/8 के लिए)
  • Win64 OpenSSL v1.0.1g स्थापित करें

पद:

प्रशासक और परीक्षण स्थापित के रूप में "VS2012 के लिए डेवलपर कमांड प्रॉम्प्ट" खोलें:

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

पीएस मेरा वर्तमान विंडोज वातावरण: win8 x64, नोड 0.10.x। सब अच्छा काम करता है।

अद्यतन (2016) : विंडोज 10 x64 के लिए नोट

विजुअल स्टूडियो एक्सप्रेस डेस्कटॉप संस्करण नोड-जीईपी समस्या हल करता है। बस इसे स्थापित करें और यह नोड-जीईपी के लिए काम करेगा।

लिंक:


मैंने इसे कैसे हल किया।

मेरा पर्यावरण: विंडोज 8.1 x64, नोड v0.12.2, एनपीएम v2.7.5

सभी घटकों को स्थापित करें:

  1. नवीनतम 2.x पायथन स्थापित करें, पायथन डाउनलोड करें (मैंने 2.7.9 डाउनलोड किया)
  2. विजुअल स्टूडियो 2012/13 एक्सप्रेस (या अन्य) स्थापित करें
  3. विंडोज एसडीके स्थापित करें (विंडोज़ 7/8 के लिए)
  4. Win64 OpenSSL v1.0.1g इंस्टॉल करें, इसे यहां से डाउनलोड करें (मैंने "Win64 OpenSSL v1.0.2a" नवीनतम लोड किया है)

सभी घटकों को स्थापित करने के बाद [महत्वपूर्ण]:

प्रशासक के रूप में "VS2012 के लिए डेवलपर कमांड प्रॉम्प्ट" खोलें

[वीएस 2012 के लिए] जाओ

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

[वीएस 2013 के लिए] जाओ

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

आदेश "VsDevCmd.bat" निष्पादित करें

फिर आप इन cmd निष्पादित कर सकते हैं:

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

और मेरे लिए यह काम करता है (मुझे लॉन्च करने में परेशानी है, क्योंकि शुरुआत से मैं कोई निष्पादन कमांड नहीं करता "VsDevCmd.bat")।

ध्यान दें:

  1. यदि यह अभी भी निष्पादित नहीं करता है तो व्यवस्थापक के रूप में खोले गए सरल कमांड प्रॉम्प्ट में कमांड निष्पादित करने का प्रयास करें
  2. या यदि bcrypt सफलतापूर्वक स्थापित हो रहा है और आपकी प्रोजेक्ट में npm इंस्टॉल कर रहा है तो यह विफल हो जाता है। Package.json में bcrypt संस्करण की जांच करें। मेरे मामले में "bcrypt" था: "0.7.x" निर्भरता निर्दिष्ट की गई थी, और मेरे पास नया bcryot संस्करण है, इसलिए इसे "bcrypt" में बदलें: "0.8.x", सब कुछ सफलतापूर्वक इंस्टॉल किया गया।

Bcrypt मॉड्यूल को हटाएं और इसके बजाय मूल जावास्क्रिप्ट लाइब्रेरी का उपयोग करें। bcrypt-nodejs को कोई संकलन की आवश्यकता नहीं है और संकलित bcrypt के रूप में लगभग समान कार्यक्षमता प्रदान करता है।







bcrypt