Я пытаюсь установить @ 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"
}
}