我正在Adobe Premiere Pro中创建一个使用Google Cloud语音的面板。我正在通过NodeJS访问Javascript而不是JSX方面的google-cloud / speech。我也正在访问google-cloud / storage。没什么大不了的,我在Mac上安装了NodeJS,访问google-cloud / storage的功能很容易编写代码。
按照npm --save @google-cloud/speech
和npm --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 / Adobe / 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 / Adobe / 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 / Adobe / 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。
答案 0 :(得分:0)
@ google-cloud / speech的某些依赖项为native addons。这些是C / C ++代码,需要针对正确的Node版本进行编译。看来您用于npm install
的Node版本与Adobe CEP中的Node版本不匹配。切换到节点5.1并再次运行npm install
或npm rebuild
。
我建议使用nvm
来更改节点版本,请参见Node Version Manager。