Bcrypt'i npm ile yüklerken hata


92

Ben yüklenemediğinde olduğum bcryptkullanarak npmaşağıdaki hatalarla karşılaşabilirsiniz çünkü benim makinede. Şansım yaver gitmeden sorunu çözüyorum. npm install bcryptBaşarıyla çalışabilmem için sorunu teşhis etmek veya düzeltmek için herhangi bir adım önerebilir misiniz ?

Someones-Macbook:node_modules Cody$ npm install bcrypt
npm WARN package.json grunt-contrib-htmlmin@0.1.3 No README data
|
> bcrypt@0.7.7 install /Applications/MAMP/htdocs/richintime/ultimate-seed/node_modules/bcrypt
> node-gyp rebuild

child_process: customFds option is deprecated, use stdio instead.
  CXX(target) Release/obj.target/bcrypt_lib/src/blowfish.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt.o
  CXX(target) Release/obj.target/bcrypt_lib/src/bcrypt_node.o
../src/bcrypt_node.cc:118:18: error: no member named 'Dispose' in 'v8::Persistent<v8::Function, v8::NonCopyablePersistentTraits<v8::Function>
      >'
        callback.Dispose();
        ~~~~~~~~ ^
../src/bcrypt_node.cc:202:19: error: unknown type name 'uv_work_t'
void GenSaltAsync(uv_work_t* req) {
                  ^
../src/bcrypt_node.cc:219:24: error: unknown type name 'uv_work_t'
void GenSaltAsyncAfter(uv_work_t* req) {
                       ^
../src/bcrypt_node.cc:220:17: error: calling a protected constructor of class 'v8::HandleScope'
    HandleScope scope;
                ^
/Users/Cody/.node-gyp/0.12.0/deps/v8/include/v8.h:816:13: note: declared protected here
  V8_INLINE HandleScope() {}
            ^
../src/bcrypt_node.cc:228:44: error: no member named 'New' in 'v8::String'
        argv[0] = Exception::Error(String::New(baton->error.c_str()));
                                   ~~~~~~~~^
../src/bcrypt_node.cc:229:19: error: no matching function for call to 'Undefined'
        argv[1] = Undefined();
                  ^~~~~~~~~
/Users/Cody/.node-gyp/0.12.0/deps/v8/include/v8.h:305:28: note: candidate function not viable: requires single argument 'isolate', but no
      arguments were provided
  friend Handle<Primitive> Undefined(Isolate* isolate);
                           ^
../src/bcrypt_node.cc:232:19: error: no matching function for call to 'Undefined'
        argv[0] = Undefined();
                  ^~~~~~~~~
/Users/Cody/.node-gyp/0.12.0/deps/v8/include/v8.h:305:28: note: candidate function not viable: requires single argument 'isolate', but no
      arguments were provided
  friend Handle<Primitive> Undefined(Isolate* isolate);
                           ^
../src/bcrypt_node.cc:238:20: error: member reference type 'v8::Persistent<v8::Function>' is not a pointer; maybe you meant to use '.'?
    baton->callback->Call(Context::GetCurrent()->Global(), 2, argv);
    ~~~~~~~~~~~~~~~^~
                   .
../src/bcrypt_node.cc:238:22: error: no member named 'Call' in 'v8::Persistent<v8::Function, v8::NonCopyablePersistentTraits<v8::Function> >'
    baton->callback->Call(Context::GetCurrent()->Global(), 2, argv);
    ~~~~~~~~~~~~~~~  ^
../src/bcrypt_node.cc:238:36: error: no member named 'GetCurrent' in 'v8::Context'
    baton->callback->Call(Context::GetCurrent()->Global(), 2, argv);
                          ~~~~~~~~~^
../src/bcrypt_node.cc:246:34: error: unknown type name 'Arguments'; did you mean 'v8::internal::Arguments'?
Handle<Value> GenerateSalt(const Arguments &args) {
                                 ^~~~~~~~~
                                 v8::internal::Arguments
/Users/Cody/.node-gyp/0.12.0/deps/v8/include/v8.h:127:7: note: 'v8::internal::Arguments' declared here
class Arguments;
      ^
../src/bcrypt_node.cc:247:17: error: calling a protected constructor of class 'v8::HandleScope'
    HandleScope scope;
                ^
/Users/Cody/.node-gyp/0.12.0/deps/v8/include/v8.h:816:13: note: declared protected here
  V8_INLINE HandleScope() {}
            ^
../src/bcrypt_node.cc:249:32: error: type 'const v8::internal::Arguments' does not provide a subscript operator
    const ssize_t rounds = args[0]->Int32Value();
                           ~~~~^~
../src/bcrypt_node.cc:250:30: error: type 'const v8::internal::Arguments' does not provide a subscript operator
    const int rand_len = args[1]->Int32Value();
                         ~~~~^~
../src/bcrypt_node.cc:251:58: error: type 'const v8::internal::Arguments' does not provide a subscript operator
    Local<Function> callback = Local<Function>::Cast(args[2]);
                                                     ~~~~^~
../src/bcrypt_node.cc:255:45: error: 'New' is a private member of 'v8::PersistentBase<v8::Function>'
    baton->callback = Persistent<Function>::New(callback);
                                            ^
/Users/Cody/.node-gyp/0.12.0/deps/v8/include/v8.h:572:23: note: declared private here
  V8_INLINE static T* New(Isolate* isolate, T* that);
                      ^
../src/bcrypt_node.cc:255:57: error: too few arguments to function call, expected 2, have 1
    baton->callback = Persistent<Function>::New(callback);
                      ~~~~~~~~~~~~~~~~~~~~~~~~~         ^
/Users/Cody/.node-gyp/0.12.0/deps/v8/include/v8.h:572:3: note: 'New' declared here
  V8_INLINE static T* New(Isolate* isolate, T* that);
  ^
/Users/Cody/.node-gyp/0.12.0/deps/v8/include/v8config.h:289:20: note: expanded from macro 'V8_INLINE'
# define V8_INLINE inline __attribute__((always_inline))
                   ^
../src/bcrypt_node.cc:259:5: error: unknown type name 'uv_work_t'
    uv_work_t* req = new uv_work_t;
    ^
../src/bcrypt_node.cc:259:26: error: unknown type name 'uv_work_t'
    uv_work_t* req = new uv_work_t;
                         ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [Release/obj.target/bcrypt_lib/src/bcrypt_node.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:267:23)
gyp ERR! stack     at ChildProcess.emit (events.js:110:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:1067:12)
gyp ERR! System Darwin 13.4.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Applications/MAMP/htdocs/richintime/ultimate-seed/node_modules/bcrypt
gyp ERR! node -v v0.12.0
gyp ERR! node-gyp -v v1.0.2
gyp ERR! not ok 
npm ERR! Darwin 13.4.0
npm ERR! argv "node" "/usr/local/bin/npm" "install" "bcrypt"
npm ERR! node v0.12.0
npm ERR! npm  v2.7.1
npm ERR! code ELIFECYCLE

npm ERR! bcrypt@0.7.7 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the bcrypt@0.7.7 install script 'node-gyp rebuild'.
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

Yanıtlar:


215

Kolay çözüm, "bcrypt" npm modülünden bycryptjsveya moduna geçmektir bcrypt-nodejs. Tamamen aynı API, ancak saf JS, dolayısıyla uğraşılacak yerel eklentiler yok.

npm install --save bcryptjs && npm uninstall --save bcrypt

Sonra requirearamalarınızı "bcryptjs" olarak değiştirin, ancak aksi takdirde tüm kodunuz değiştirilmeyebilir.

Uzun vadede, şu anda bcrypt'in v0.12.0 düğümü için hazır olmadığından şüpheleniyorum, ancak değilse sonunda güncellenecek ve hazır olacak.


1
Python sürümünden 2,7 kat daha yavaş
rocketspacer

1
bcryptjs benim için çalışıyor. bcrypt-nodejs buna rağmen DEĞİLDİR.
Colby Cox

4
2019 - bcrypt-nodejs artık desteklenmiyor gibi görünüyor
Matta

1
bu bir düzeltme, düzeltme değil. bcrypt'in düğüm sürümüne geçemezseniz, node-gyp kurulumuna gidin (npm i bcrypt npde-gyp --force'u deneyin) ve ardından npm i'yi deneyin. doğru şekilde inşa edilmelidir.
Caio Wilson

1
Bcrypt-nodejs'yi zaten kullanımdan kaldırılmış olmasına rağmen yükledim ve sonra kaldırdım ve bcrypt'i yeniden yükledim. Bunun gibi, bcrypt'i başarıyla yükledim ve iyi çalıştı.
Max

35

Windows için aşağıdaki modülü kurun

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

sonra yüklemeyi dene

npm install bcrypt

Bu adam mükemmel bir cevap veriyor. diğer şeyler kullanımdan kaldırılmıştır.
Gaurang Joshi

tüm bunlardan sonra, PATH ortam değişkeninizepython yürütülebilir dosya da eklemelisiniz , böylece yükleyici onu bulur, yüklemeyi düzgün bir şekilde yürütmek için ona ihtiyaç duyuyor gibi görünür.
Rakibul Haq

Bunu Powershell'e sağ tıklayıp "Yönetici Olarak Çalıştır" ı seçerek yaparsınız
Kishan Patel

Ayrıca windows-build-tools, kurulumu bitirmek için diğer terminalleri kapattığınızdan (varsayılan olarak Powershell kullanmadığım için) emin olun . Bu cevap için teşekkürler btw
3Dos

Windows'ta Yönetici Olarak Çalıştır
Prathamesh More

11

Bu komutla:

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

Bunu Powershell'de Windows makinenizde yönetici olarak çalıştırmanız gerekebilir.

Bunu Powershell'e sağ tıklayarak ve "Yönetici Olarak Çalıştır" ı seçerek yaparsınız.


6

Kabul edilen çözüm işe yarıyor ancak bcryptjs python ve c ++ sürümünden daha yavaştır.

Hala bcrypt insted istiyorsanız bcryptjs çalışma çözümü aşağıdaki komutlardır, ancak bunlar da sorun olabilir.

✔️ npm install -g node-gyp
❌ npm install --g --production windows-build-tools

Windows'ta ikinci komut, görsel stüdyoyu python ile birlikte kurmaya çalışacak ve bu nedenle sorun ortaya çıkacaktır. Çünkü Visual Studio'yu neden kurmak isteyelim ve bu çok zaman alıyor. ve ayrıca python kurulumunu da engeller. Ve bu komutu Yönetici olarak çalıştırmayı unutursanız, C: \ Users \ User.windows-build-tools konumuna yüklenecekler, bu da çalışmayacaktır çünkü node, C: \ veya C: \ Program Files \ içinde python arayacaktır. . Dolayısıyla bu komutlar bazı durumlarda komplikasyonlarınızı artırır.

Bu yüzden sizin için en iyi fikir ✔️ python'u Tüm Kullanıcılar için manuel olarak kurmaktır Ve ortam yoluna python eklemek gerekmez. Ve sadece ilk komutu çalıştırın yani

✔️ npm install -g node-gyp

Artık bcrypt'i kurmaya hazırsınız

npm install bcrypt

3

Mac OS'de, bir Xcode güncellemesinden sonra, Xcode'un sudo gccyeni lisansını çalıştırmak ve kabul etmek sorunu çözdü!


3

Aşağıdakileri çalıştırdım, sonra yüklemeyi denedim ve işe yaradı:

npm install node-pre-gyp -g

1

Sunucu tarafında da aynı sorunla karşılaşıyordum (aws ubuntu 16.04).

Node_module / bcrypt'i sudo rm -rf node_module/bcryptdefalarca silmeyi denedim ve çeşitli yollarla tekrar tekrar yükledim, ancak yine de aynı sorunla karşılaştım.

Düğüm sürümünü nvm ile kontrol ettim ve aynı zamanda kararlı (v10.11.0) gösteriyordu.

Sonunda denedim.

sudo npm cache clean -f
sudo npm install -g n
sudo n stable

ve benim için çalıştı.


1

Windows kullanıyorsanız, powershell'i yönetici olarak çalıştırın ve bu komutları kullanın.

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

ve ardından bcrypt'i kurun

npm install --save bcrypt

1

Ben de aynı sorunu yaşıyordum. Aşağıdaki komutlar bana yardımcı oldu.

npm rebuild

sonra

npm install bcrypt

1

Hata Nedeni : Düğüm belki sisteminizdeki Python yolunu bulamıyor

Çözüm

Adım: 1 Yönetici olarak Rum komut istemi Adım 2 Paketi kurun

  npm install --global --production windows-build-tools

Biraz zaman alabilir, sabırlı olun

Adım 3 Şimdi kurun

npm install node-gyp

Son adım Artık gitmeye hazırsınız

npm install bcrypt



0

Yukarıdakilerden herhangi biri işe yaramazsa, şunu yapın:

npm install node-gyp

Daha sonra resmi python indirme sitesini ziyaret edin Resmi Python indirme bağlantısını

Python'un en son sürümünü yükleyin, yola python eklemeyi kontrol ettiğinizden emin olun. yola python ekle

Kurulumdan sonra şunları yapın:

npm --save install bcrypt

0

Bcrypt-nodejs'yi zaten kullanımdan kaldırılmış olmasına rağmen yükledim ve sonra kaldırdım ve bcrypt'i yeniden yükledim. Bunun gibi, bcrypt'i başarıyla yükledim ve iyi çalıştı.

yarn add bcrypt-nodejs
yarn remove bcrypt-nodejs
yarn add bcrypt 

0

Koşu

sudo apt install build-essential

bcrypt'i Linux'a kurmak için ihtiyacınız olan tüm araçları kurar. O zaman koşabilirsin

npm install

0

12.18.3 düğüm sürümüne sahiptim ve aynı şeyi çalıştırarak düzelttim npm i bcrypt@3.0.6


-1

Aynı sorunu yaşadım. Npm güncelleniyor ve tekrar deneyin (genellikle npm install -g npm). Benim için sorunu çözdü.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.