Андрей
спасибо, посмотрю
но думаю что не совсем то
это я так понимаю бойлерплейт для написания бэк логики на .net с вьюхой в виде электрона
а у меня видишь чисто одну-две dll ки запаковать бы. А общение с беком вовсе на Java и сокетах
Roman
Народ всем привет
Подскажите, как включить самописные dll библиотеки в итоговую сборку
Сейчас при запуске dev сервера локально формируется папка build, из которой запускается main js
в этом main js я подключаю собственную dll для вызова C# класса. Поэтому dll просто кладу рядом и оно все работает корректно
Само собой когда все дело билдится (electron-builder) то выходная папка dist не содержит нужные мне dll
Встает вопрос как это сделать правильно?
Вот пример electron-build.config
{
"appId": "com.electron.app",
"directories": {
"output": "dist"
},
"nsis": {
"oneClick": false,
"perMachine": false,
"allowToChangeInstallationDirectory": true,
"shortcutName": "Name App"
},
"win": {
"target": "nsis",
"icon": "renderer/android-chrome-512x512.png"
},
"linux": {
"target": ["snap"]
},
"files": [
{
"from": "build/main",
"to": "main",
"filter": ["**/*"]
},
{
"from": "build/renderer",
"to": "renderer",
"filter": ["**/*"]
},
{
"from": "src/main/static",
"to": "static",
"filter": ["**/*"]
},
{
"from": "node_modules",
"to": "node_modules",
"filter": [
"**/*",
"!**/{CHANGELOG.md,README.md,README,readme.md,readme}",
"!**/{test,__tests__,tests,powered-test,example,examples}",
"!**/*.d.ts",
"!**/.bin"
]
},
"!**/*",
"package.json"
]
}
Тогда вот тут после files нужно ещё extraFiles секцию, где все нужные левые файлы можно положить в билд.
Roman
Во всяком случае, я бы от этого оттолкнулся для начала.
🅰️nimeCoder
Иван
Ребят, оч срочный вопрос
как сделать авто апдейтер в электрон апп, кучу литературы прочитал, пререлиз завтра🥲
слышал про nuts, electron-release-server и ещё кучу всего, чот не могу разобраться
ALΣX
Более 2 лет работает для всех систем, полет нормальный
Иван
что по третьему пункту, как быстрее всего сервер подготовить и что ещё нужно сделать кроме того чтобы на него билд залить
Иван
заранее спасибо большое, выручаешь)
ALΣX
Это просто пример, возможно есть варианты лучше, я пишу, что сам тыкал 🤷🏻♂️
Иван
Короч, пока попытка не увенчалась успехом, файлы на nginx загрузил, electron-builder обращается к nginx, и даже с статусом 200, но обновления не подгружаются и пишет checkForUpdatesAndNotify called, downloadPromise is null. Я загружаю setup программу и latest.yml, причём версии в билде на пк и на сервере отличаются, на сервере версия новее.
Что.. блин.. делать
ALΣX
ALΣX
для автоматической установки обнов
ALΣX
import { autoUpdater } from 'electron-updater';
autoUpdater.on('update-downloaded', () => {
autoUpdater.quitAndInstall();
});
Иван
yeap
autoUpdater.on('update-downloaded', (info) => {
log.info('Update downloaded; will install now');
autoUpdater.quitAndInstall();
});
ALΣX
какая ось?
_dimon_chick_
Иван
Иван
win
ALΣX
хм, интересно, а какая версия electron?
Иван
"electron": "^28.2.0",
"electron-builder": "^24.9.1",
"electron-vite": "^2.0.0",
Иван
фак, там на сайте есть уже версия 30.0.9🤯🤯
ALΣX
Иван
не спешу
ALΣX
можешь скинуть в приват настойки build и логику для electron-updater, попробую локально протестировать
1788-L
всем привет!
правильно ли я понимаю, что при упаковке приложения electron пропускает nodeIntegrarion: true и упаковывает без него? просто у меня все приложение готово, отрабатывает отлично, упаковываю и получаю
Ilya
Всем привет
Подскажите пожалуйста как при формировании сборки приложения копировать папку renderer/public? Пробовал всю папку копировать renderer и это он делает, но не совсем корректно. Папки кроме src .next не видит. Как будто под капотом в electron-builder что-то не дает мне этого сделать.
Использую nextron, под капотом использует electroun-builder.
"extraFiles": [
{
"from": "renderer/public",
"to": "renderer/public",
"filter": [
"**/*"
]
}
],
Alex
Всем привет! Ситуация такая, есть electron приложение на raspberry. Нужно его обновлять через wifi без выхода в сеть.
Рядом стоит пк/ноут в одной сети с raspberry, И на нем должен крутиться какой то сервер для обработки запросов на обновление? Есть ли какие-нибудь "сервера" под ключ, то есть установил, запустил, немного настроил(т.к. это должны будут делать обычные пользователи), загрузил файлы обновления и приложение на rpi обновилось.
Dmitry
Dmitry
Возможно, подойдёт autoUpdater из electron-builder
Если использовать в качестве провайдера generic, то это должна быть просто папка, в которой лежит .yml файл с информацией о последнем релизе и файлы готовые для скачивания: deb, appImage или что-то в этом роде.
1788-L
господа, может быть кто-то знает, как снять различные ограничения хрома в электроне? я уже за+бался ловить непонятные ошибки. у меня скрипт, который загружает и выгружает фотографии. и постоянно падает то ошибка при скачивании (на stackoverflow вычитал что связана с каким-то ограничениям хрома), то ошибка при выгрузке (504), хотя она никогда не падала, если скрипт запускать руками, а не через электрон
.:.
https://t.me/hamster_kombat_boT/start?startapp=kentId92402054
Play with me, become cryptoexchange CEO and get a token airdrop!
💸 2k Coins as a first-time gift
🅰️nimeCoder
1788-L
1788-L
у меня работает скрипт, который отправляет изображения на сервер
1788-L
и апи поддерживает большое кол-во изображений в одном запросе, собственно я так и делаю
1788-L
пробовал отсылать по 50, 200 и 500 штук, один хрен падает со временем эта ошибка
🅰️nimeCoder
видать апи не вытягивает стока
🅰️nimeCoder
а чо значи со временем
1788-L
ну первые 10-15 запросов ошибка может не падать, потом падает
Alex
1788-L
Dmitry
Dmitry
господа, может быть кто-то знает, как снять различные ограничения хрома в электроне? я уже за+бался ловить непонятные ошибки. у меня скрипт, который загружает и выгружает фотографии. и постоянно падает то ошибка при скачивании (на stackoverflow вычитал что связана с каким-то ограничениям хрома), то ошибка при выгрузке (504), хотя она никогда не падала, если скрипт запускать руками, а не через электрон
Рассчитывая получить ответ на свой вопрос, как минимум, нужно описать возникающие ошибки. Как правило, в самой ошибке уже часть ответа.
Dmitry
1788-L
Рассчитывая получить ответ на свой вопрос, как минимум, нужно описать возникающие ошибки. Как правило, в самой ошибке уже часть ответа.
как у меня вызывается эта ошибка: я выгружаю по 500 фото за один запрос по апи. фотографий может быть от 5k до 20k. при условии что фотографий меньше ~6 тысяч все выгружается плюс-минус нормально, но если их больше, то 504 ошибка может вылезти ещё при выгрузке первой тысячи. возможно, конечно, это ошибка апи, уже написал в техподдержку, но есть подозрения, что мне очень сильно мешает электрон (или хром)
Dmitry
как у меня вызывается эта ошибка: я выгружаю по 500 фото за один запрос по апи. фотографий может быть от 5k до 20k. при условии что фотографий меньше ~6 тысяч все выгружается плюс-минус нормально, но если их больше, то 504 ошибка может вылезти ещё при выгрузке первой тысячи. возможно, конечно, это ошибка апи, уже написал в техподдержку, но есть подозрения, что мне очень сильно мешает электрон (или хром)
Это не ошибка, а ответ сервера. Коды 5хх обычно говорят о проблеме, возникшей на сервере во время обработки запроса.
504 говорит о том, что превышен тайм-аут, операция выполняется слишком долго.
Dmitry
Скорее всего нужно пересмотреть алгоритм отправки фотографий, разбить на "порции" поменьше.
1788-L
если фото меньше 6k эта ошибка не падает
1788-L
а если больше то падает с первой тысячи
1788-L
тут нет разницы какая 'порция'
Dmitry
Каким образом отправляются эти 6к?
1788-L
по 500 фото одним запросом + ожидаем ответ + таймаут 20 секунд поставил
Dmitry
1788-L
да, используется аксиос, нет, таймаут не в самом запросе
1788-L
function sleep(ms) {
console.log('Спим!');
return new Promise(resolve => setTimeout(resolve, ms));
}
for (const chunk of chunksOfNames) {
await uploadPhotos(chunk, tempdir);
await sleep(20000);
}
Dmitry
Могу ошибаться, но Axios по умолчанию не прописывает тайм-аут в запросе, нужно явно указать в HTTP-заголовке. Поставить как-минимум 30 секунд. Использовать timeout - плохая идея. Достаточно получить ответ сервера.
Dmitry
Что в uploadPhotos?
1788-L
Что в uploadPhotos?
async function uploadPhotos(names, tempdir) {
console.log(`Выгружаю чанк`);
const token = 'my_toekn';
const formData = new FormData();
names.forEach(name => {
const filePath = path.join(tempdir, name);
formData.append('files', fs.readFileSync(filePath), name);
});
const config = {
headers: {
...formData.getHeaders(),
Authorization: `Bearer ${token}`,
},
maxContentLength: Infinity,
maxBodyLength: Infinity,
adapter: 'http'
};
const i = axios.create({
httpsAgent: new https.Agent({ keepAlive: false, maxSockets: 10 })
});
const apiUrl = "https://some.api/object-manager/upload";
try {
const date = new Date();
console.log(date.getHours(), date.getMinutes());
await i.post(apiUrl, formData, config);
} catch (error) {
const date = new Date();
console.log(date.getHours(), date.getMinutes());
console.error('Error uploading photos:', error);
throw new Error(error);
}
}
Dmitry
Я чуть позже отвечу как я бы написал, как доберусь до компьютера.
flory
Всем привет!
Была ли у кого-то подобна проблема: использую electron-builder, собираю с таргетом под линукс, запускаю исполняемый файл и мне выдает такое:
причем в терминале ошибок нет... , единственное, что я вижу - это
DevTools was disconnected form the page. Once page is reloaded, DevTools will automatically reconnect'.
такая же проблема и в wsl.
Андрей
Доброго дня
Подскажите, кто сталкивался с похожим
Стоит задача реализовать preview документа, будь то это PDF, или файлы MS Office (doc, docx, rtf, xls и других)
Файлы лежат на файловом хранилище, реализацию превью изображений сделал, обычные текстовые файлы тоже отображает корректно, однако с файлами word и PDF пока возникают вопросы
Предполагаю, что у этих файлов своя кодировка и разметка и тупо как массив байтов их не получится отрисовать. Встает вопрос какие путевые пакеты или библиотеки есть (желательно что бы это была одна зависимость 😅) для подобных целей ?
Alex
https://www.electron.build/auto-update.html
Да уже это попадалось на глаза, проблема заключается в том что на малинке для сервера думаю места мало и ресурсов (т.к. еще приложение там крутиться постоянно будет, встроенная память 8гб), а если на пк сервер ставить, то это должно быть до безобразия просто т.к. этим будут постоянно заниматься рядовые юзеры. Спасибо за помощь!
Dmitry
Dmitry
У меня сейчас так работает приложение с обновлениями для Mac, Windows и Ubuntu
Michael
да, тут у вас детский сад, увы... левый мезинец на моей левой ноге большне шарит)))
Michael
идите что-то сторойте... программирование это не ваше от слова совсем!)))
Dmitry
Michael
ага)
Michael
философский вопрос) ... может ли человек в одно и то-же время быть духовно мертвым и как-бы живым чисто формально ?
Unknown
а ну делитесь и со мной
nikolay
Anton [az09@osm]
рано у кого-то пятница началась))
Michael
Michael