Андрей
спасибо, посмотрю но думаю что не совсем то это я так понимаю бойлерплейт для написания бэк логики на .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
Во всяком случае, я бы от этого оттолкнулся для начала.
Иван
Ребят, оч срочный вопрос как сделать авто апдейтер в электрон апп, кучу литературы прочитал, пререлиз завтра🥲 слышал про nuts, electron-release-server и ещё кучу всего, чот не могу разобраться
ALΣX
Ребят, оч срочный вопрос как сделать авто апдейтер в электрон апп, кучу литературы прочитал, пререлиз завтра🥲 слышал про nuts, electron-release-server и ещё кучу всего, чот не могу разобраться
1) установить electron-updater (https://www.electron.build/auto-update) 2) указать в проекте сервер, где находяться обновления (собранные билды + yml для них) 3) настроить сервер, чтобы по выбранному адресу (указаном во 2 пункте) отдавать статику 4) залить обновления на сервер, а на стороне приложения поставить интервал на проверку обновлений
ALΣX
Более 2 лет работает для всех систем, полет нормальный
Иван
что по третьему пункту, как быстрее всего сервер подготовить и что ещё нужно сделать кроме того чтобы на него билд залить
Иван
заранее спасибо большое, выручаешь)
ALΣX
что по третьему пункту, как быстрее всего сервер подготовить и что ещё нужно сделать кроме того чтобы на него билд залить
Если nginx, то просто поменять конфиг сервера и указать, что с папки /download (к примеру) нужно отдавать содержимое, перезапустить сервер
ALΣX
Это просто пример, возможно есть варианты лучше, я пишу, что сам тыкал 🤷🏻‍♂️
Иван
Короч, пока попытка не увенчалась успехом, файлы на nginx загрузил, electron-builder обращается к nginx, и даже с статусом 200, но обновления не подгружаются и пишет checkForUpdatesAndNotify called, downloadPromise is null. Я загружаю setup программу и latest.yml, причём версии в билде на пк и на сервере отличаются, на сервере версия новее. Что.. блин.. делать
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_
какая ось?
Земная ?)
Иван
какая ось?
не в теме)
ALΣX
не в теме)
обновления для win, macOS, linux?
Иван
win
ALΣX
хм, интересно, а какая версия electron?
Иван
"electron": "^28.2.0", "electron-builder": "^24.9.1", "electron-vite": "^2.0.0",
Иван
фак, там на сайте есть уже версия 30.0.9🤯🤯
Иван
не спешу
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
Возможно, подойдёт 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
т.е. 500 ошибки это не ошибки со стороны сервера, правильно понимаю?
ну это сто процентов с стороны сервера, правда не факт что ты их сам как-то не вызвал)
1788-L
у меня работает скрипт, который отправляет изображения на сервер
1788-L
и апи поддерживает большое кол-во изображений в одном запросе, собственно я так и делаю
1788-L
пробовал отсылать по 50, 200 и 500 штук, один хрен падает со временем эта ошибка
🅰️nimeCoder
видать апи не вытягивает стока
🅰️nimeCoder
а чо значи со временем
1788-L
ну первые 10-15 запросов ошибка может не падать, потом падает
Андрей
ну первые 10-15 запросов ошибка может не падать, потом падает
Попробуй очередью из нескольких небольших пачек изображений отправлять. Условно пока на первые 10-15 ответ не придет от бека, следующие 10-15 не отправятся
1788-L
Рассчитывая получить ответ на свой вопрос, как минимум, нужно описать возникающие ошибки. Как правило, в самой ошибке уже часть ответа.
как у меня вызывается эта ошибка: я выгружаю по 500 фото за один запрос по апи. фотографий может быть от 5k до 20k. при условии что фотографий меньше ~6 тысяч все выгружается плюс-минус нормально, но если их больше, то 504 ошибка может вылезти ещё при выгрузке первой тысячи. возможно, конечно, это ошибка апи, уже написал в техподдержку, но есть подозрения, что мне очень сильно мешает электрон (или хром)
Dmitry
Скорее всего нужно пересмотреть алгоритм отправки фотографий, разбить на "порции" поменьше.
1788-L
если фото меньше 6k эта ошибка не падает
1788-L
а если больше то падает с первой тысячи
1788-L
тут нет разницы какая 'порция'
Dmitry
Каким образом отправляются эти 6к?
1788-L
по 500 фото одним запросом + ожидаем ответ + таймаут 20 секунд поставил
Dmitry
по 500 фото одним запросом + ожидаем ответ + таймаут 20 секунд поставил
Тайм-аут в самом запросе прописан? Axios используется?
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
У меня сейчас так работает приложение с обновлениями для Mac, Windows и Ubuntu
Michael
да, тут у вас детский сад, увы... левый мезинец на моей левой ноге большне шарит)))
Michael
идите что-то сторойте... программирование это не ваше от слова совсем!)))
Michael
ага)
Michael
философский вопрос) ... может ли человек в одно и то-же время быть духовно мертвым и как-бы живым чисто формально ?
Dmitry
философский вопрос) ... может ли человек в одно и то-же время быть духовно мертвым и как-бы живым чисто формально ?
Грех приводит к смерти. Единственный способ избежать ее – прийти к Иисусу через веру, будучи привлеченными Святым Духом. Вера во Христа приводит к духовной жизни и, в конечном счете, к жизни вечной.
Unknown
а ну делитесь и со мной
Anton [az09@osm]
рано у кого-то пятница началась))
Michael
а ну делитесь и со мной
Ты брат или сестра ?)