Electron.js releases
v11.0.0-beta.8 https://github.com/electron/electron/releases/tag/v11.0.0-beta.8 v11.0.0-beta.8
Electron.js releases
v12.0.0-nightly.20200918 https://github.com/electron/electron/releases/tag/v12.0.0-nightly.20200918 v12.0.0-nightly.20200918
Denis
Кто отвечает за бота?
Denis
Можно ли подтюнить, чтобы не было уведомлений о найтли релизах
Denis
Просто лишний шум
Vadim
@sovasergey
Sergey
Надо бы делать отдельного бота. Или вообще выключить
southyyy
Добрый день, можно ли посмотреть. исходный код собранного electron приложения как это в вебе работает? (пкм посмотреть код и тд)
southyyy
так же как и в вебе работает, или по другому?
Vadim
так же как и в вебе работает, или по другому?
Есть архив asar, его нужно просто разархивировать. Но по факту как в вебе, если нормально сделали, то будут обфусцированные бандлы.
southyyy
окей, спасибо!
Sergey
так же как и в вебе работает, или по другому?
обычно не добавляют возможность посмотреть исходник по правому клику и отключают девтулзы
southyyy
а как она убирается?
Vadim
https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions webPreferences -> devTools
Vadim
https://www.electronjs.org/docs/api/browser-window#new-browserwindowoptions webPreferences -> devTools
Это превентит, но опять таки, если руками вскрыть архив, то все что упаковал(все бандлы и тд) можно получить.
Electron.js releases
v12.0.0-nightly.20200921 https://github.com/electron/electron/releases/tag/v12.0.0-nightly.20200921 v12.0.0-nightly.20200921
Electron.js releases
v11.0.0-beta.9 https://github.com/electron/electron/releases/tag/v11.0.0-beta.9 v11.0.0-beta.9
Anonymous
Всем привет. Пробую подключить i18next с бекендом i18next-fs-backend, но при запуске в консоле electron forge logger: WARNING in ./node_modules/i18next-fs-backend/esm/readFile.js 74 Critical dependency: the request of a dependency is an expression Нагуглил, что нужно в вебпак добавить json-loader, но, к сожалению, проблему не решило. Подскажите, пожалуйста, в какую сторону копать?
Electron.js releases
v12.0.0-nightly.20200922 https://github.com/electron/electron/releases/tag/v12.0.0-nightly.20200922 v12.0.0-nightly.20200922
Dmitry
Кто-нибудь пользуется webContents.findInPage? Судя по документации в этом методе есть опции wordStart и medialCapitalAsWordStart, но по факту они не работают. В релизе 4 версии написано, что эти опции убраны. Похоже ошибка документации?
Electron.js releases
v12.0.0-nightly.20200923 https://github.com/electron/electron/releases/tag/v12.0.0-nightly.20200923 v12.0.0-nightly.20200923
Electron.js releases
v12.0.0-nightly.20200924 https://github.com/electron/electron/releases/tag/v12.0.0-nightly.20200924 v12.0.0-nightly.20200924
Egor
const result = await systemPreferences.askForMediaAccess(mediaType) Сразу же возвращает false в development mode. Это нормально? можно как-то вообще потестить запрос к настройкам приватности на macOS
Egor
или пока приложение не подпишешь так и должно быть?
Egor
Решил проблему с помощь tccutil reset Camera оказывается у меня уже было приложение заблочено. Я так понял что если приложению отказал то уже не получится вызвать модалку к доступу еще раз
Electron.js releases
v12.0.0-nightly.20200925 https://github.com/electron/electron/releases/tag/v12.0.0-nightly.20200925 v12.0.0-nightly.20200925
Egor
Обьясните зачем нужен macOS only - systemPreferences.askForMediaAccess(“camera”) который вызввается в main если есть `navigator.mediaDevices .getUserMedia({ video: true })` который работает на всех платформах?
Danila
С последней версии macOS приложение не может захватывать камеру пока в системных настройках или через уведомление пользователь ему не разрешит
Danila
Эта функция инициирует подобный запрос
Danila
Иначе getUserMedia вернёт ошибку
Egor
Иначе getUserMedia вернёт ошибку
У меня проблема в том что он не возращает ошибку. https://github.com/electron/electron/issues/19017 (электрон 9) Я вызываю navigator.mediaDevices.getUserMedia({ video: true }), появляется окно, я *запрещаю* камеру, но этот метод резолвится успехом! Кроме того я пробовал чекать systemPreferences.getMediaAccessStatus(“camera”) - он возвращает “not-detemined” и ДО и ПОСЛЕ того как я запретил камеру. Как итог я не могу определить запрещена камера или нет 🙁
Danila
Я не могу утверждать со 100% уверенностью, но есть вероятность, что разрешение давно процессу, который запускает electron в dev-режиме
Danila
Например IDE, в терминале которой запускается процесс
Egor
ну да разрешение спрашивает у webstorm например у меня. Однако если я соглашаюсь - systemPreferences.getMediaAccessStatus(“camera”) возращает успех
Danila
Попробуйте скомпилировать и проделать то же самое
Danila
У macOS много неочевидных сценариев проведения, которые не всегда корректно отрабатываются Electron'ом
Egor
посмотреть бы пример, наверняка где-то есть приложение с камерой где нормально хэндлят кейс когда камеру запретили 🤔
Danila
Отлично помогает поиск в коде по github по вхожению функции и расширению файла
Egor
Хорошая идея, чекну
Ni
Всем привет. На данный момент только начал изучать электрон и сразу встал вопрос о защите исходников. Я нашёл библиотеку, которая транслирует JS код сразу в V8, но на практике её пока не приходилось использовать (хотя автор уверяет, что с электроном либа полностью совместима). https://github.com/OsamaAbbas/bytenode/blob/master/README.md Но меня больше интересует момент с обфускацией кода. Может кто-нибудь, пожалуйста, подсказать библиотеки, которые реализуют надёжную обфускацию в одном направлении? Всем большое спасибо!
Anonymous
Не трать на это время сейчас
Ni
Вопрос о защите исходников должен появляться после того, как аппа стала хоть как-то популярной
Хочу большинство нюансов изучить сейчас, чтобы не возникало такого, когда аппа готова, а защитить её нормально не получится
Vadim
На электроне защитить не получится
Это сейчас холивар будет) Тут уже много раз это поднималось
Anonymous
Это сейчас холивар будет) Тут уже много раз это поднималось
Защита аппы на электроне это 1% пути, причем последний
Anonymous
До этого идеи разработка, продажи, маркетинг, саппорт
Anonymous
И это 99% первые
Anonymous
Вот я и пытаюсь предостеречь людей от траты времени на ненужные проблемы
Vadim
Вот я и пытаюсь предостеречь людей от траты времени на ненужные проблемы
Ага, а потом оставляют исходники в асаре. Нужные, но не первоочередные)
Anonymous
Ага, а потом оставляют исходники в асаре. Нужные, но не первоочередные)
Ну это крайность уже :) отключить сорс мапы и вебпак даст минимификацию
Vadim
Ну это крайность уже :) отключить сорс мапы и вебпак даст минимификацию
Да, а дальше забывают нюанс, нужно указать билдеру какие папки включить в билд)
Vadim
И лучше не отключать сорсмапы, а просто исключить их из билда(тот что делает уже билдер)
Anonymous
Да, а дальше забывают нюанс, нужно указать билдеру какие папки включить в билд)
Если используется стартерт кит, то это решено по умолчанию
Anonymous
Короче, сначала продавайте, потом прокачивайте безопасность
Arsen
Защита кода есть в NW.js https://nwjs.readthedocs.io/en/nw22/For%20Users/Advanced/Protect%20JavaScript%20Source%20Code/
Ni
На электроне защитить не получится
А как же вариант с компиляцией кода в V8?
Ni
Вот я и пытаюсь предостеречь людей от траты времени на ненужные проблемы
Кстати, ситуация немного другая сейчас. Идея, маркетинг, продвижение — все эти этапы были пройдены в первой версии программы, которая была написана на другом языке. Там вопрос с защитой исходников был решён на уровне «по гайдам в интернете и тулзам с гитхаба не вскрывается». Для новой версии был выбран электрон по многим преимуществам, которые он предоставляет. К сожалению, переносить вычисления на сервер не выйдет, приходится много работать с файловой системой. Поэтому, данный вопрос лучше решить на ранних этапах разработки. Если есть какие-то базовые советы, библиотеки, чтобы обеспечить минимальную защиту от банальной распаковки асар архива со всеми исходниками, мне будет очень полезно, спасибо
Anonymous
Так будет некоторый уровень защиты
...
Перенесите логику в с++ и компилируйте нативным модулем для ноды
Переноска логики в с++ не потребует ли много времени?
Anonymous
Переноска логики в с++ не потребует ли много времени?
Ну зато защита. Плюс сказали, что аппа была написана на другом языке, может си?
Ed
или используйте другой язык
Ni
>приходится много работать с файловой системой Работайте, а все, что возможно, переносите на сервер
Да, так и поступаем. Выносим на сервер все, что можно вынести. К сожалению, электрон настолько крутой, что отказываться от него = потерять много времени
Anton
Привет, подскажите, а в electron можно как-то сделать, чтобы localstorage не обновлялся при перезапуске приложения? Мне нужно, чтобы я мог и из веба писать в localStorage и из собранного эклектрон приложения, поэтому библиотеки типа electrone-store не подходят. Приложение на рекате, если что.
Anton
думал, есть какое-то удобное решение
Anton
А, или оно хранится постоянно, как и в браузере?
southyyy
Ребят всем привет, хотел бы узнать, как можно через элетрон запустить приложение, допустим у меня electron приложение и мне надо по клику на кнопку запустить хром. Был у кого такой опыт?
Lev
через exec можно прпобовать
Lev
https://nodejs.org/api/child_process.html