Sheldhur
кидало эксепшен на спанв
Sheldhur
TypeError: Bad argument
Sergey
так это
Sergey
ему же строка нужна
Sergey
путь к файлу
Sergey
или имя команды которую запустить
Sergey
почитал бы доку ноды
Sergey
https://nodejs.org/api/child_process.html#child_process_child_process
Sheldhur
о_О это из доки самого электрона
Sergey
электрон на ноде основан
Sheldhur
ну
Sheldhur
лан, попробую ещё потом
Sheldhur
через electron-workers
Sheldhur
ему же строка нужна
задал путь ручками, он видимо не находил
Sheldhur
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, }));
Sheldhur
примерно так
Sergey
захардкодил?
Sheldhur
потом по человечески сделаю, главное, что работает
Sergey
хех))
Sergey
ну так впринципе и должно быть
Electron.js releases
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
как заспавнить дочерний процесс электрона с бабелем? а то меня чёт не радует переписывать модели на es2015
GG
Spawn("electron", [”arg1", ”arg2"], {cwd:"yourdir"})
Sheldhur
не хочет так
GG
Покажи как делаешь
GG
Код
Sheldhur
сек
Sheldhur
Код
захардкодил для проверки 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\\' });
Sheldhur
в ProcessExplorer и без cwd выставляет директорию с проектом
Sheldhur
в cmd выходит \WebstormProjects\Vector\node_modules\electron\dist\electron.exe ./app/worker.js -r babel-register -r babel-register
GG
Exe
Sheldhur
убрать?
Sheldhur
чёт сомневаюсь, что поможет
GG
Spawn это процесс ноды, а .exe это не нода
Sheldhur
ну процесс то спавнит
Sheldhur
всё работает
Sheldhur
но бабеля нет
Sheldhur
тогда уж так, наверно \WebstormProjects\Vector\node_modules\.bin\electron
GG
Child_process.exec() для .exe
Sheldhur
гм...
Sheldhur
а эта срань после сборки в пакет вообще работать будет?
Sheldhur
или придется весь node_modules за собой тащить?
GG
Хз, я вообще сейчас в кинотеатре) так что посмотри доку ноды, и по гугли
Sheldhur
exec не подойдет
Sheldhur
общаться с процессом надо
Sheldhur
тык уже изгуглился
GG
общаться с процессом надо
Обратная связь нужна? Или только передача внутрь?
Sheldhur
мало кто в электроне реакт использует, и мало кто процессы вообще форкает, на стеке вопросов на эту тему штуки 4
Sheldhur
Sheldhur
обратная нужна
Sheldhur
я даже прямо к пакетам путь указывал, не заводилось
Sheldhur
и даже на main скрипт
GG
обратная нужна
Ну тут можно попробовать вариант- .exe пишет в консоль stdout и ловить его
GG
А внутрь передавать с помощью флагов
Sheldhur
о обратно? :)
GG
Ловить stdout
Sheldhur
ммм...
GG
От exe
GG
Как сделаешь рабочую версию, скинь код пожалуйста, на гист желательно, и только ту часть которая запускает процесс и общается с ним
Sheldhur
да там же немного
GG
Все равно
Sheldhur
15 строк от силы, не считая обработчика message
Sheldhur
Все равно
https://gist.github.com/sheldhur/e8c1e65758375c6c110c43e97f2cfb06
Sheldhur
вышло немножко больше xD всё не проверял
GG
Странно, как у тебя вообще exe через spawn работает
GG
Spawn - порождает новый процесс ноды Это тоже самое что и в консоле набирать node yourCommand
Sheldhur
Ноды нет же, только электрон
Sheldhur
Нода только в dev
Sheldhur
Если я все правильно понимаю
GG
Не знаю где у тебя нода), но electron.exe это не нода
Sheldhur
Электрон это электрон, но внутри нода :) чистую ноду в продакшене не выйдет запустить, если не стоит
GG
Кажется я ошибаюсь по поводу spawn, то о чем я говорил это fork, хм надо загуглить - что такое spawn
Sheldhur
Я тоже не совсем понял, но там по разному запускается
GG
require('child_process').spawn(): используется для больших объёмов данных; поддерживает stream’ы; может применяться с любыми командами; не создаёт новый экземпляр V8.require('child_process').fork(): создаёт новый экземпляр V8 и экземпляры работников; работает только со скриптами Node.js (команда node).require('child_process').exec(): неудобен для больших объёмов данных, потому что использует буфер; работает асинхронно, чтобы одновременно получать все данные в callback’е; может применяться с любой командой, не только node.
Sheldhur
Ну и IPC через fork из коробки, хотя для spawn один аргумент добавить надо всего
GG
https://m.habrahabr.ru/company/mailru/blog/283228/
Sheldhur
Ога
Sheldhur
эм...хз чё сделал, но инсерты в дочернем процессе стали просто супер быстрыми о_О