正在使用v64-darwin和v51创建@ google-cloud / speech节点模块

时间:2018-08-23 06:20:57

标签: node.js npm google-cloud-platform google-cloud-speech

我正在Adobe Premiere Pro中创建一个使用Google Cloud语音的面板。我正在通过NodeJS访问Javascript而不是JSX方面的google-cloud / speech。我也正在访问google-cloud / storage。没什么大不了的,我在Mac上安装了NodeJS,访问google-cloud / storage的功能很容易编写代码。

按照npm --save @google-cloud/speechnpm --save @google-cloud/storage的指示进行操作后,它创建了the node_modules目录。我已将它们移至自定义目录,但它们在标准位置也被复制。

在我的代码中,我根据google-cloud示例引用了它们:

// note cep.node is required in the Adobe CEP environment to access nodejs
    const speech = cep_node.require(extention_path+'/lib/node_modules/@google-cloud/speech');
const project_id ='project_id_xxx1234';
const keyFilePath = extention_path +'/path/to/key.json';

const client = new speech.v1.SpeechClient({
      projectId: project_id,
      keyFilename: keyFilePath,
});

我已经尝试了不带ID和语音的示例,例如,SpeechClient()等。该方法适用于google-cloud / storage,因此我知道在相同位置的类似下载节点模块可以很好地工作。

但是,它尝试使用下面的浏览器调试错误尝试制作新的speech.SpeechClient()失败。

  

未捕获的错误:由于未为当前系统安装gRPC二进制模块,因此无法加载它   预期目录:node-v51-darwin-x64-unknown   找到:[。DS_Store,node-v64-darwin-x64-未知]   通常可以通过在当前系统上运行“ npm rebuild”来解决此问题。   原始错误:找不到模块'/ Library / Application Support / Adob​​e / CEP / extensions / com.iv.PProPanel / lib / node_modules / grpc / src / node / extension_binary / node-v51-darwin-x64-unknown / grpc_node.node '       在对象。 (/图书馆/应用程序支持/Adobe/CEP/extensions/com.iv.PProPanel/lib/node_modules/grpc/src/grpc_extension.js:53:17)       在Module._compile(module.js:595:32)       在Object.Module._extensions..js(module.js:610:10)       在Module.load(module.js:512:32)       在tryModuleLoad(module.js:471:12)       在Function.Module._load(module.js:463:3)       在Module.require(module.js:522:17)       在要求时(internal / module.js:20:19)       在对象。 (/图书馆/应用程序支持/Adobe/CEP/extensions/com.iv.PProPanel/lib/node_modules/grpc/src/client_interceptors.js:145:12)       在Module._compile(module.js:595:32)

我的信念是,@ google-cloud / speech访问的以下一系列node_modules是使用NODE_MODULE_64编译的,需要51(而不是51)。

$ npm rebuild可以很好地重建(或检查模块的当前版本),但

  

protobufjs@6.8.8安装后/ Library / Application Support / Adob​​e / CEP / extensions / com.iv.PProPanel / lib / node_modules / protobufjs   节点脚本/安装后   grpc@1.14.1安装/库/应用程序支持/Adobe/CEP/extensions/com.iv.PProPanel/lib/node_modules/grpc   节点pre-gyp install --fallback-to-build --library = static_library   node-pre-gyp WARN使用对node-pre-gyp的请求https下载   [grpc]成功:“ / Library / Application Support / Adob​​e / CEP / extensions / com.iv.PProPanel / lib / node_modules / grpc / src / node / extension_binary / node-v64-darwin-x64-unknown / grpc_node.node”已安装   通过--update-binary重新安装或--build-from-source重新编译

因此某些模块需要v51而不是build v64。问题是可以使用v51构建@ google-cloud / speech模块吗?还是我等待google-cloud提出解决方案?顺便说一句:我也将node-v64目录重命名为node-51,但是收到了另一个错误,引用了MODULE 51。

1 个答案:

答案 0 :(得分:0)

@ google-cloud / speech的某些依赖项为native addons。这些是C / C ++代码,需要针对正确的Node版本进行编译。看来您用于npm install的Node版本与Adobe CEP中的Node版本不匹配。切换到节点5.1并再次运行npm installnpm rebuild

我建议使用nvm来更改节点版本,请参见Node Version Manager