Electron.js releases
v4.1.3 https://github.com/electron/electron/releases/tag/v4.1.3 v4.1.3
Anton
Парни, всем привет. Такой вопрос, кто-нибудь писал нативные модули под электрон, по аналогии с node.js модулями. какие отличия в нодах, обычной и ту которую использует electron. пишу приложение с асинхронными вызовами функций js из нативного модуля. с обычной нодой всё норм, а в электроне падает, с неожиданными либами.
Anton
для модулей я использую napi
Vadim
Немного отличий, нужно пересобирать модули, к примеру, electron-builder install app deps или electron-builder
Vadim
для модулей я использую napi
Использовал старый nan
倫太郎
@Atassis
Завтра
Гайс, возможно ли сделать такую функциональность плавной в электроне? Типа зажимаешь блок и перетаскиваешь отдельным окном Технически я представляю, как это сделать, но вот не уверен, будет ли это работать нормально
Sergey
или тебе нужно разделить на два окна перетаскиванием блока наружу?
Завтра
https://www.useloom.com/share/82accce4914e43f4a7bee24b04faf351 Вот так надо крч
Завтра
Я думаю сделать так 1) Создавать скрытое окно с таким блоком 2) При зажимании блока в основном окне скрывать блок и показывать скрытое окно 3) Ну и наоборот соответственно
Andrew
Подскажите пожалуйста, если у меня есть приложение, я использую vuejs, и у меня есть необходимость сделать запрос к стороннему сайту, как мне лучше поступить, сделать просто отдельный сервис и с помощью vue сделать этот запрос, или как-то из vue обраться в main.js и уже оттуда сделать запрос и вернуть обратно vue?
Завтра
Без разницы Лично я всю подобную бизнес-логику держу в main-процессе, чтобы не зависеть от окон
Andrew
Без разницы Лично я всю подобную бизнес-логику держу в main-процессе, чтобы не зависеть от окон
а можешь свой гитхаб скинуть посмотреть как у тебя реализовано это все?
Завтра
Сори, не опен-сорс 💁🏻‍♂️
Andrew
Request как-нибудь может возвращать данные в функцию которая ее вызвала? const { net } = require('electron') const request = net.request('https://github.com') request.on('response', (response) => { response.on('data', (chunk) => { console.log(`BODY: ${chunk}`) }) })
Завтра
Даже автор request уже сказал, что он устарел, почему не заюзать тот же node-fetch?
Andrew
Даже автор request уже сказал, что он устарел, почему не заюзать тот же node-fetch?
я думал лучше использовать то что встроено в electron, а про эту не видел, щас посмотрю, спасибо
Завтра
Никто не обязывает это делать 💁‍♂
Andrew
ну это понятно, я думал что это все более как-то оптимизированно, по сравнению с другими
Victor
и да, это ж не тот реквест что из нпм, а хромовский
Victor
ну создай промис и резолви его на событие 'end '
Завтра
Хм, а подвисший main-процесс фризит окно что ли? Выходит, вынос тяжелой логики из рендерера не имеет смысла?
Alex
Ну этож жс
Alex
Мб есть смысл еще один процесс создать)
Завтра
Мб есть смысл еще один процесс создать)
Ну вот да, но текущая кодовая база не писалась с рассчетом на чайлд процессы))
Victor
А что за тяжелая логика? мб можно разбить на части по 16мс?
Завтра
Точнее не так, я бы мог спокойно разбить ядро приложения на процессы, если бы его частям не требовался весь стейт приложухи 💁🏻‍♂️
Завтра
А что за тяжелая логика? мб можно разбить на части по 16мс?
Вот я думаю над этим. Придется файбер имплементить 😄
Alex
А у тебя просто одна функция виснет?
Alex
Я конечно могу ошибатся, но мультипоток(асинк) в ноде как раз построен на доп. Процессах
Oleksii
У ноды нет мультипотока
Oleksii
Она в одном потоке работает
Завтра
Я уже нашел, что грузит. А асинхронщина все равно в одном потоке гоняется, да - это первое, что я пытался как-то оптимизировать)
Oleksii
А из за чего виснет? Ожидание результата или циклические вычисления?
Завтра
У меня в приложении есть цепочки команд, в параметрах которых можно юзать JS-выражения Собственно, они евалятся и евал, как оказалось, операция тяжелая - а триггерилось 40 цепочек * 9 действий * 5 параметров в каждом = 1800 евалов подряд 💁🏻‍♂️
Oleksii
Ой-ой-ой, да у нас тут извращенец)
Oleksii
Почему используется именно такая структура?
Завтра
Предложи вариант лучше)
Oleksii
Выполнение скриптов?
Oleksii
Для бота
Завтра
Типа того, только там не бот, а более глобальная история
Oleksii
Скажу как делал с ботами, мб здесь сойдёт, делал функционал модулями, которые загружались все в определенный момент и в них уже вызывались методы
Завтра
Типа того, только там не бот, а более глобальная история
Это тул для стримеров, основная идея - есть простейшие действия, которые можно объединять в цепочки и вызывать в один клик, либо по какому-либо событию. Там не только чат, еще работа с OBS, с самим стримом + Discord и Twitter
Oleksii
Тоесть нужен новый функционал, дописал модуль и все
Oleksii
В отдельный файл
Завтра
Не понимаю, как это относится к проблеме)
Oleksii
Можно не хранить код и евалить, а делать что то типа App.getPlugin(pluginName).call(methodName, argArray)
Oleksii
И в цепочке хранить название модуля, метода и аргументы
Завтра
Эм, я не евалю вызовы
Oleksii
Тогда я не так понял, простите
Завтра
Вот что я евалю
Oleksii
А зачем это эвалить?
Завтра
У меня, конечно, есть мысль не евалить, а просто строки заменять, но это на данный момент сильное техническое ограничение
Завтра
Евалится это, чтобы можно было ${message.split(' ').slice(1).join(' ')} делать, например
Oleksii
Я делал так 'Привет, {{nickname}}' Потом регуляркой перебирал все такие вставки, внутри вставки стоит название переменной из которой достать значение, и вставлял значение
Завтра
Ну это и есть техническое ограничение, о котором я говорю
Oleksii
Какое?
Oleksii
Есть функция которая получает строку и объект props, в объекте все необходимые для форматирования переменные, и возвращает отредактированную строку
Oleksii
А дальше уже режьте ее как хотите
Завтра
Проехали, в общем
Andrew
а как лучше всего хранить настройки всякие, чтобы они при перезапуске не сбрасывались?
Завтра
https://github.com/sindresorhus/electron-store
D
привет, не подскажите как запроксировать свои запросы в рендерере на localhost на другой адрес? пробовал через session.setProxy но что-то не зайшло
Evgeny
Добрый день! Сталкивался кто-нибудь с подобным? Переодически крашется рендер в черный экран. Бывает работает по несколько дней-недель без перерыва, а бывает раз в день-два. https://github.com/electron/electron/issues/15703
Evgeny
читал про это
Victor
ну тогда хз, и поменять карту нельзя?
Evgeny
нет
Evgeny
еще вчера нкопал такой косяк: после воспроизведения моно аудио, стерео не воспроизводится, и наооборот тоже, после воспроизведения моно, не воспроизводится стерео
Evgeny
это у меня типа киоска электронного
Anton
Доброй ночи. Ребят, кто-нибудь использует electron-builder. Интересует подпись приложения под MacOS. Добавил сертификаты, при подписи вылетает ошибка.
Anton
Как я понимаю, он не может подписать все файлы приложения. Но как с этим бороться)
Vadim
Ты сделал два сертификата затем сжал их в один?