Невозможно правильно установить Google / Cloud-речь и электрон - PullRequest
0 голосов
/ 17 февраля 2019

Я пытаюсь установить @ google-cloud / speech вместе с электроном, но получаю некоторые ошибки.я считаю, что я сузил проблему до gRPC, не желая правильно скомпилировать с электроном.Я использую последнюю версию Electron (4.0.5) и npm для установки этих пакетов.

Я могу воспроизвести проблему, создав простое электронное приложение (просто скопируйте и вставьте приложение для начала работы) изатем пытаюсь установить и использовать модуль @ google-cloud / speech вместе с ним.

Я получаю эту ошибку в консоли электронного приложения.приложение открывается нормально и показывает HTML для страницы, но js выдает эту ошибку

Failed to load gRPC binary module because it was not installed for the 
current system
Expected directory: electron-v4.0-win32-x64-unknown
Found: [node-v57-win32-x64-unknown]

после получения этой ошибки я перестраиваю свой проект с помощью этой команды (рекомендуется gRPC)

npm rebuild --target=4.0.5 --runtime=electron --dist url=https://atom.io/download/electron

после этого я получаю эту ошибку.

The module '\\? \C:\Users\doug0001\Desktop\Test\node_modules\grpc\src\node\extension_binary\ 
electron-v4.0-win32-x64-unknown\grpc_node.node'    
was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 69. Please try re-compiling or re-installing

Я пробовал кучу других вещей, таких как построение из исходного кода, но все они в конечном итоге приводят меня к одной из этих ошибок.Я бы показал все эти попытки, но этот пост был бы длиной в милю.

, если бы кто-то мог указать мне правильное направление или сказать мне, как это работает должным образом, это было бы очень признательно.


Я не верю, что что-либо из следующего связано с моей проблемой, но если это так ...

Main.js

const {app, BrowserWindow} = require('electron')
const ipc = require('electron').ipcMain
  // Keep a global reference of the window object, if you don't, the window will
  // be closed automatically when the JavaScript object is garbage collected.
  let MainWindow

  function createWindow () {
    // Create the browser window.
    MainWindow = new BrowserWindow({width: 830, height: 545})

    // and load the index.html of the app.
    MainWindow.loadFile('Home.html')

    // Open the DevTools.
    MainWindow.webContents.openDevTools()

    // Emitted when the window is closed.
    MainWindow.on('closed', () => {
      // Dereference the window object, usually you would store windows
      // in an array if your app supports multi windows, this is the time
      // when you should delete the corresponding element.
      MainWindow= null
    })
  }
  // This method will be called when Electron has finished
  // initialization and is ready to create browser windows.
  // Some APIs can only be used after this event occurs.
  app.on('ready', createWindow)

  // Quit when all windows are closed.
  app.on('window-all-closed', () => {
    // On macOS it is common for applications and their menu bar
    // to stay active until the user quits explicitly with Cmd + Q
    if (process.platform !== 'darwin') {
      app.quit()
    }
  })

  app.on('activate', () => {
    // On macOS it's common to re-create a window in the app when the
    // dock icon is clicked and there are no other windows open.
    if (MainWindow=== null) {
      createWindow()
    }
  })

js файл для страницы просто имеет эту строкукода

const speech = require("@google-cloud/speech")

package.json

{
  "name": "test",
  "version": "1.0.0",
  "description": "",
  "main": "Main.js",
  "scripts": {
    "start": "electron ."
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "@google-cloud/speech": "^2.3.0",
    "electron": "^4.0.5"
  }
}
...