使用npm安装bcrypt时出错

我无法在计算机上bcrypt使用进行安装npm,因为遇到以下错误。我一直在排除此问题,但运气不佳。您可以建议任何步骤来诊断或解决问题,以便我可以npm

install bcrypt成功运行吗?

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

回答:

简单的解决方案是从“ bcrypt”

npm模块切换到bycryptjsbcrypt-

nodejs。它是完全相同的API,但使用纯JS,因此无需处理本机附加组件。

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

然后将您的require调用更改为“ bcryptjs”,但是所有其他代码都可以保持不变。

从长远来看,我怀疑目前bcrypt可能尚未为节点v0.12.0做好准备,但如果没有,它最终将被更新并准备好。

以上是 使用npm安装bcrypt时出错 的全部内容, 来源链接: utcz.com/qa/426155.html

回到顶部