首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法让原生npm包依赖于特定版本的V8 C++ API?

有没有办法让原生npm包依赖于特定版本的V8 C++ API?
EN

Stack Overflow用户
提问于 2015-12-05 07:43:35
回答 1查看 120关注 0票数 0

今天,我发现在节点0.10.40上成功编译的node-fibers和bcrypt的旧版本在节点5.1.0上不能成功编译。

例如,如果我尝试编译bcrypt 0.7.8,我得到的错误肯定是由于V8 API的更改:

代码语言:javascript
复制
> bcrypt@0.7.8 install /Users/andy/jcore-portal/target/device/dist/bundle/node_modules/bcrypt
> node-gyp rebuild

  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:54:18: error: no member named 'Dispose' in
      'v8::Persistent<v8::Function, v8::NonCopyablePersistentTraits<v8::Function>
      >'
        callback.Dispose();
        ~~~~~~~~ ^
../src/bcrypt_node.cc:128:19: error: unknown type name 'uv_work_t'
void GenSaltAsync(uv_work_t* req) {

...

显然,bcrypt无法确定V8应用程序接口是一个不兼容的版本。我在package.jsonnode-gyp配置中也看不到任何可能适用的字段。这是构建脚本中的错误,还是包无法确定V8库版本?

EN

回答 1

Stack Overflow用户

发布于 2016-11-07 22:10:54

https://docs.npmjs.com/files/package.json#engines

您可以指定您的内容在其上工作的节点版本:

代码语言:javascript
复制
{
... 
  "engines" : { 
    "node" : ">=0.10.3 <0.12" 
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34099343

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档