3
respostas

Problemas ao usar a biblioteca serialport no electron

Estou tento problemas na utilização da biblioteca serialport no electron. Com o codigo abaixo eu tive exito na execução com o nodejs. Executando o comando "node main.js" o codigo é executado perfeitamente.

const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')
const port = new SerialPort('COM5') // porta que estava usando no momento

var array = [0xAA,0x55,0x01,0x01,0x28,0x15,0x3F,0xFF];
port.write(array);

const parser = new Readline()
port.pipe(parser)
port.on('data', function (data) {
  console.log('Data:', data)
})

A utilização no electron é um pouco diferente, seguindo os passos do link "https://serialport.io/docs/guide-installation", basicamente após criar um arquivo main.js com o codigo acima, executei os seguintes comandos:

npm init
npm install electron --save
npm install serialport --save-dev electron-rebuild

Adicionei as seguintes linhas no package.json:

"start": "electron .",
"install": "electron-rebuild"

E após :

npm start

Porem recebo o seguinte erro:

Error: The module 'C:\Users\Lucas\Documents\Alura\Teste electron\node_modules\@serialport\bindings\build\Release\bindings.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 73. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).

Gostaria de saber como resolvo esse problema ou se alguem já utilizou essa biblioteca no electron.

3 respostas

Fala aí Lucas, tudo bem? Nunca usei esse biblioteca, mas, dá uma olhada nessa discussão:

https://github.com/serialport/node-serialport/issues/1755

O problema parece ser porque o Electron usa uma versão diferente do Node do que npm.

Qual a versão do seu Node e Electron?

Talvez um possível downgrade para a versão 10 do Node e 4 do Electron deva resolver.

Espero ter ajudado.

Pois é, agora estou com outra duvida. Rodando comando "node -v "

Node v12.7.0 

E rodando " electron -v"

electron v1.4.13

E mesmo apos executar "npm install electron@6.0.0 --save", o resultado de "electron-v" ainda é electron v1.4.13. Acredito que não estou conseguindo atualizar o meu electron.

Fala ai Lucas, tudo bem? Precisa ver, talvez o seu electron -v seja uma instalação global e você está instalando localmente no projeto.

Para atualizar o global:

yarn global add electron // yarn
npm i -g electron // npm

Espero ter ajudado.