node.js - nodejs - Error al instalar bcrypt con npm
npm install bcrypt error (8)
Acabo de ejecutar lo siguiente, luego probé la instalación y funcionó:
npm install node-pre-gyp -g
No puedo instalar
bcrypt
usando
npm
en mi máquina porque encuentro los siguientes errores.
He estado solucionando el problema sin mucha suerte.
¿Me puede recomendar algún paso para diagnosticar o solucionar el problema para que pueda ejecutar
npm install bcrypt
éxito?
Someones-Macbook:node_modules Cody$ npm install bcrypt
npm WARN package.json [email protected] No README data
|
> [email protected] 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! [email protected] install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] 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
En Mac OS, después de una actualización de Xcode, ejecutar
sudo gcc
y aceptar la nueva licencia de Xcode resolvió el problema.
En este comando:
npm install --g --production windows-build-tools
Es posible que deba ejecutar esto en Powershell como administrador en su máquina Windows.
Para ello, haga clic derecho en Powershell y seleccione "Ejecutar como administrador"
Estaba enfrentando el mismo problema en el lado del servidor (aws ubuntu 16.04).
Intenté eliminar node_module / bcrypt por
sudo rm -rf node_module/bcrypt
varias veces y lo reinstalé una y otra vez de varias maneras, pero aún enfrento el mismo problema.
Verifiqué la versión del nodo con nvm y también se mostró estable (v10.11.0).
Finalmente lo intenté.
sudo npm cache clean -f
sudo npm install -g n
sudo n stable
Y funcionó para mí.
La solución fácil es simplemente cambiar del módulo npm "bcrypt" a
bycryptjs
o
bcrypt-nodejs
.
Es exactamente la misma API, pero JS puro, por lo que no hay complementos nativos con los que lidiar.
npm install --save bcryptjs && npm uninstall --save bcrypt
Luego, cambie sus llamadas
require
a "bcryptjs", pero de lo contrario todo su código no se puede modificar.
A largo plazo, sospecho que por el momento bcrypt puede no estar listo para el nodo v0.12.0 todavía, pero si no, eventualmente se actualizará y estará listo.
Si está en Windows, ejecute powershell como administrador y use estos comandos.
npm install --g --production windows-build-tools
y luego instale bcrypt usando
npm install --save bcrypt
Tuve el mismo problema Actualice npm e intente nuevamente (npm install -g npm generalmente). Me solucionó el problema.
para Windows instale el siguiente módulo
npm install -g node-gyp
npm install --g --production windows-build-tools
luego intente instalar
npm install bcrypt