#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
, убедитесь, что переменная допустима.
окончательное решение: используйте пакет исправлений