Проблема с импортом whatsapp-web.js модуль nodejs в приложении electron react

#node.js #reactjs #ffmpeg #electron #sharp

Вопрос:

Я пытаюсь создать приложение electron react. Мне нужно интегрировать модули этого узла https://www.npmjs.com/package/whatsapp-web.js в моем приложении electron react. Мой main.js электрона выглядит так:

 // Modules to control application life and create native browser window
const { app, BrowserWindow } = require("electron");
const path = require("path");

function createWindow() {
  // Create the browser window.
  const mainWindow = new BrowserWindow({
    width: 800,
    height: 600,
    webPreferences: {
      webSecurity: false,
    },
  });

  // and load the index.html of the app.
  mainWindow.loadURL("your ip address:3000");

  // Open the DevTools.
  // mainWindow.webContents.openDevTools()
}

app.whenReady().then(() => {
  createWindow();

  app.on("activate", function () {
    // 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 (BrowserWindow.getAllWindows().length === 0) createWindow();
  });
});

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

// In this file you can include the rest of your app's specific main process
// code. You can also put them in separate files and require them here. 

И код реакции, в который я хочу импортировать whatsapp-web.js модуль выглядит так

 import React from "react";
import styled from "styled-components";
const qrcode = require('qrcode-terminal');
const Client = require('whatsapp-web.js');
function Error() {
  var client = new Client();
  client.initialize();
  console.log(client);
  console.log(qrcode);
  return (
    <Container>
      <ErrorImage src="https://cdn4.iconfinder.com/data/icons/smiley-vol-3-2/48/134-512.png"></ErrorImage>
      <ErrorMessage>Oops, you are not connected to any number.</ErrorMessage>
    </Container>
  );
}

export default Error;

const Container = styled.div`
  display: flex;
  height: 100vh;
  width: 100%;
  padding-top: 20vh;
  position: center;
  /* align-items: center; */
  justify-content: center;
`;

const ErrorImage = styled.img`
  background-color: transparent;
  background-repeat: no-repeat;
  background-size: cover;
  object-fit: contain;

  width: 25%;
  height: 25%;

  /* border: 2px solid black; */
`;

const ErrorMessage = styled.div`
  margin: 10px;
  width: 50%;
  height: 25%;
  /* top: 20px; */
  font-size: 30px;
  align-items: center;
  font-family: "Lucida Console", "Courier New", monospace;
  /* font-weight: bold; */
`; 

Теперь каждый раз, когда я пытаюсь импортировать const {Клиент} = требуется(‘whatsapp-web.js’) Это приводит к такой ошибке:
**
[0] ./node_modules/fluent-ffmpeg/index.js [0] Модуль не найден: Не удается разрешить». /lib-cov/fluent-ffmpeg » в «D:SunilZarir_app-mainZarir_app-mainnode_modulesfluent-ffmpeg’ [0] Компиляция… [0] Не удалось скомпилировать.

и я попробовал это решение https://github.com/fluent-ffmpeg/node-fluent-ffmpeg/issues/573#issuecomment-305408048 и другие ресурсы, но по-прежнему ничего не работает и просто зацикливается на ошибках и ошибках. Пожалуйста, помогите, если у вас есть какая-либо информация, связанная с этим. Спасибо.

Ответ №1:

Похоже, что плагин webpack не действует

пробовать:

 # mac or linux
export FLUENTFFMPEG_COV=

# win
set FLUENTFFMPEG_COV=

yarn run build
 

потому что:

введите описание изображения здесь

fluent-соответствующий исходный код ffmpeg: fluent-ffmpeg/node-fluent-ffmpeg/index.js

Если это не сработает, я предлагаю вам изменить исходный код node_modules и напечатать над ним: process.env , убедитесь, что переменная допустима.

окончательное решение: используйте пакет исправлений