
Sheldhur
30.03.2017
14:59:49
import {remote} from 'electron';
const electronWorkers = remote.require('electron-workers')(({
pathToElectron: 'C:\\Users\\Sheldhur\\WebstormProjects\\Vector\\node_modules\\electron\\dist\\electron.exe',
connectionMode: 'ipc',
pathToScript: `C:\\Users\\Sheldhur\\WebstormProjects\\Vector\\app\\worker.js`,
timeout: 5000,
}));
примерно так

Сергей
30.03.2017
15:00:30
захардкодил?

Sheldhur
30.03.2017
15:00:31
потом по человечески сделаю, главное, что работает

Google

Сергей
30.03.2017
15:00:37
хех))
ну так впринципе и должно быть


Electron.js releases
31.03.2017
20:56:11
electron v1.6.5 beta
https://github.com/electron/electron/releases/tag/v1.6.5
Bug Fixes
Fixed an issue where Electron could not use the version of ffmpeg that
does not include proprietary codecs. #9057 (https://github.com/electron/electron/pull/9057)
Fixed an issue where drag and drop events did not work properly across
tags. #9037 (https://github.com/electron/electron/pull/9037)
Fixed an issue where the geolocation API could hang the UI thread and
crash the renderer process. #8923 (https://github.com/electron/electron/pull/8923)
Fixed an uncaught error when making a request via the net module
and the response's content encoding was not supported. #9001 (https://github.com/electron/electron/pull/9001)
Fixed a crash that would occur on certain page navigations. #9043 (https://github.com/electron/electron/pull/9043)
Fixed an issue where net module requests did not support non-string
header values. #9062 (https://github.com/electron/electron/pull/9062)
Windows
Fixed an issue where escaped & characters could not be used in top-level
menu item labels. #8984 (https://github.com/electron/electron/pull/8984)
API Changes
The crashReporter module is now available in sandboxed renderer processes.
#8956 (https://github.com/electron/electron/pull/8956)
Added support for controlling how redirects are handled in the net module.
#9007 (https://github.com/electron/electron/pull/9007)
Added editMenu and windowMenu menu item roles that include the standard
OS submenu items. #8880 (https://github.com/electron/electron/pull/8880)
Added support for a tabbingIdentifier option to the BrowserWindow
constructor that enables groupable native tabs on macOS 10.12+. #9052 (https://github.com/electron/electron/pull/9052)
Windows
The uploadToServer option to crashReporter.start is now supported. #9053 (https://github.com/electron/electron/pull/9053)


Sheldhur
01.04.2017
06:13:45
как заспавнить дочерний процесс электрона с бабелем? а то меня чёт не радует переписывать модели на es2015

Sergey
01.04.2017
12:25:44
Spawn("electron",
[”arg1", ”arg2"],
{cwd:"yourdir"})

Sheldhur
01.04.2017
14:54:49
не хочет так

Sergey
01.04.2017
14:55:16
Покажи как делаешь
Код

Sheldhur
01.04.2017
14:55:32
сек
Код
захардкодил для проверки
let spawn = remote.require('child_process').spawn;
let child = spawn(process.execPath, ['./app/worker.js', '-r', 'babel-register', '-r', 'babel-register'], {
stdio: ['pipe', 'pipe', 'pipe', 'ipc'],
cwd: 'C:\\Users\\Sheldhur\\WebstormProjects\\Vector\\'
});
в ProcessExplorer и без cwd выставляет директорию с проектом
в cmd выходит \WebstormProjects\Vector\node_modules\electron\dist\electron.exe ./app/worker.js -r babel-register -r babel-register

Sergey
01.04.2017
15:00:16
Exe

Google

Sheldhur
01.04.2017
15:00:34
убрать?
чёт сомневаюсь, что поможет

Sergey
01.04.2017
15:01:01
Spawn это процесс ноды, а .exe это не нода

Sheldhur
01.04.2017
15:01:19
ну процесс то спавнит
всё работает
но бабеля нет
тогда уж так, наверно \WebstormProjects\Vector\node_modules\.bin\electron

Sergey
01.04.2017
15:02:12
Child_process.exec() для .exe

Sheldhur
01.04.2017
15:02:31
гм...
а эта срань после сборки в пакет вообще работать будет?
или придется весь node_modules за собой тащить?

Sergey
01.04.2017
15:03:42
Хз, я вообще сейчас в кинотеатре) так что посмотри доку ноды, и по гугли

Sheldhur
01.04.2017
15:04:18
exec не подойдет
общаться с процессом надо
тык уже изгуглился

Sergey
01.04.2017
15:05:59

Sheldhur
01.04.2017
15:06:05
мало кто в электроне реакт использует, и мало кто процессы вообще форкает, на стеке вопросов на эту тему штуки 4
обратная нужна
я даже прямо к пакетам путь указывал, не заводилось
и даже на main скрипт

Google

Sergey
01.04.2017
15:08:00
обратная нужна
Ну тут можно попробовать вариант- .exe пишет в консоль stdout и ловить его
А внутрь передавать с помощью флагов

Sheldhur
01.04.2017
15:08:45
о обратно? :)

Sergey
01.04.2017
15:09:02
Ловить stdout

Sheldhur
01.04.2017
15:09:11
ммм...

Sergey
01.04.2017
15:09:12
От exe
Как сделаешь рабочую версию, скинь код пожалуйста, на гист желательно, и только ту часть которая запускает процесс и общается с ним

Sheldhur
01.04.2017
15:13:47
да там же немного

Sergey
01.04.2017
15:14:12
Все равно

Sheldhur
01.04.2017
15:14:34
15 строк от силы, не считая обработчика message
Все равно
https://gist.github.com/sheldhur/e8c1e65758375c6c110c43e97f2cfb06
вышло немножко больше xD всё не проверял

Sergey
01.04.2017
16:33:19
Странно, как у тебя вообще exe через spawn работает
Spawn - порождает новый процесс ноды
Это тоже самое что и в консоле набирать node yourCommand

Sheldhur
01.04.2017
16:37:43
Ноды нет же, только электрон
Нода только в dev
Если я все правильно понимаю

Sergey
01.04.2017
16:38:43
Не знаю где у тебя нода), но electron.exe это не нода

Sheldhur
01.04.2017
16:39:49
Электрон это электрон, но внутри нода :) чистую ноду в продакшене не выйдет запустить, если не стоит

Sergey
01.04.2017
16:40:08
Кажется я ошибаюсь по поводу spawn, то о чем я говорил это fork, хм надо загуглить - что такое spawn

Google

Sheldhur
01.04.2017
16:41:30
Я тоже не совсем понял, но там по разному запускается

Sergey
01.04.2017
16:41:54
require('child_process').spawn(): используется для больших объёмов данных; поддерживает stream’ы; может применяться с любыми командами; не создаёт новый экземпляр V8.require('child_process').fork(): создаёт новый экземпляр V8 и экземпляры работников; работает только со скриптами Node.js (команда node).require('child_process').exec(): неудобен для больших объёмов данных, потому что использует буфер; работает асинхронно, чтобы одновременно получать все данные в callback’е; может применяться с любой командой, не только node.

Sheldhur
01.04.2017
16:42:29
Ну и IPC через fork из коробки, хотя для spawn один аргумент добавить надо всего

Sergey
01.04.2017
16:42:38
https://m.habrahabr.ru/company/mailru/blog/283228/

Sheldhur
01.04.2017
16:42:57
Ога
эм...хз чё сделал, но инсерты в дочернем процессе стали просто супер быстрыми о_О
возможно из-за того, что не подгружал в sequelize модели

Sergey
01.04.2017
18:34:03
Я пилю сильно нажруженное приложение, и заметил что нода использует малую часть оперативы, а твои спавны создают новые экземпляры и они могут использовать другую свободную оперативу
Возможно отсюда быстродействие

Sheldhur
01.04.2017
18:34:46
да не, главный процесс где-то 300 метров сожрал

Sergey
01.04.2017
18:35:41
У меня 300 мб всего используется оперативы из 1гб свободной

Sheldhur
01.04.2017
18:36:14
я всё таки ставлю на модели, потому что даже raw запрос vs orm работает раз в 5 быстрею
а тут он пытается результат raw к модели привязать, если она есть, я так дума.

Sergey
01.04.2017
18:38:48
А как в ноде заюзать больше свободной оперативы? Кто Знает?

Sheldhur
01.04.2017
18:39:00
параметр есть
но больше 4х вроде не скормить
только форкать процессы

Sergey
01.04.2017
18:40:35
А как узнать что мое приложение использует максимум оперативы, чтоб форкнуть новый процесс?
В нужное время

Sheldhur
01.04.2017
18:40:53
в process вроде было чёта

Google

Sheldhur
01.04.2017
18:41:16
process.memoryUsage()
process.getProcessMemoryInfo()

Sergey
01.04.2017
18:43:52
Проверил, форки после компиляции, - не работают

Sheldhur
02.04.2017
00:47:50
надо дебажить
возможно неверный путь к electron
в продакшене

Sergey
02.04.2017
00:48:09
подожди 5 мин
я сейчас пробую один вариант, уже компильтся
подожди 5 мин
попробовал этот модуль, тоже не пашет после компиляции
https://www.npmjs.com/package/electron-spawn

Sheldhur
02.04.2017
00:54:53
а какая ошибка то вываливается, когда новый процесс запускаешь?
он вообще стартует?

Sergey
02.04.2017
00:55:26
никакая, просто не запускает спавны

Sheldhur
02.04.2017
00:55:42
а путь к электрону как задавал?