Alexander
Ну конечно
Alexander
Я просто не знаю особонности работы с реактом, так что затрудняюсь
Anton
ок, а если, скажем, нужно поднять сервер, который будет статику раздавать, то как это бы вы сделали?
Alexander
Ну я бы поднял сервер на ноде
Anton
Ну я бы поднял сервер на ноде
как я понимаю, что в элктроне есть своя нода
Anton
мне нужно чтобы у юзера без ноды тоже стартовал этот сервер
Alexander
Возможно я не прав, но мне кажется, что как раз файл, который я скидывал, он и образует запущенный сервер. Попробуй добавить в него свои скрипты и посмотри как отработает
Oleksii
npm run build?)
Oleksii
В реакт проекте
Oleksii
И зачем это все делать в npm скриптах?
Electron.js releases
v7.0.0-nightly.20190611 https://github.com/electron/electron/releases/tag/v7.0.0-nightly.20190611 v7.0.0-nightly.20190611
Electron.js releases
v6.0.0-beta.7 https://github.com/electron/electron/releases/tag/v6.0.0-beta.7 v6.0.0-beta.7
Anton
И зачем это все делать в npm скриптах?
ну ок, у меня есть билд для прода, мне же нужно поднять сервер, который будет отдавать тот же index.html
Anton
как это сделать на электроне?
Anton
const express = require('express') const path = require('path') const app = express() app.use(express.static(path.join(__dirname, 'build'))) app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'build', './build/index.html')) }) app.listen(9000) вот у меня есть такой индексовый файл, как сделать, чтобы электрон запускал его?
Oleksii
Если есть билд, тебе не нужен сервер
Oleksii
let win = new BrowserWindow({ width: 800, height: 600 }) win.loadURL(file://${__dirname}/build/index.html)
Anton
Если есть билд, тебе не нужен сервер
Я же не могу index.html билда запустить, чтобы все работало. Нужен serve
Oleksii
Почему не можешь?
Anton
Ну создай app через cra
Anton
Сбилди
Anton
В index html пустая страница
Anton
В доке фейсбука написано, что нужен serve
Сергій
Во время разработки юзаешь серв, а в сборке билд реакта и все
Anton
Для запуска билда
Anton
У меня есть файл electron.js, он лежит в папке build ( хз зачем, нужно вынести ). Если я пишу electron ./build/electron.js а в не прописано, что нужно запускать index.html - все работает ок. Но после сборки электрон-билдера приложение сразу крашится, это проблема конфига сборки?
Anton
Можно ли как-то понять почему оно крашится?
Oleksii
@using_js добавь это в свой package.json реакт проекта: "homepage": "./"
Oleksii
И выполни npm run build
Oleksii
И оно будет запускаться из обычного index.html
Anton
Попробуй запустить приложение через консоль
/Volumes/{app-name}\ 1.0.0/{app-name}.app/Contents/MacOS/{app-name} ; exit; Killed: 9 logout Saving session...completed. [Process completed]
Anton
тоже сразу крашится
Oleksii
Оуф, с маком не работал, не могу помочь
Anton
Оуф, с маком не работал, не могу помочь
тогда такой вопрос — у меня есть след. скрипт, нужно чтобы загружалось не /index.html а просто / mainWindow.loadURL(url.format({ pathname: 'index.html', /* Attention here: origin is path.join(__dirname, 'index.html') */ protocol: 'file', slashes: true }))
Oleksii
Никак
Oleksii
Что бы было /, нужен вебсервер
Oleksii
Почему нужен именно /?
Anton
ну по / лежит модуль dashboard, если загружать index.html, то компонент dashboard не грузится
Anton
можно конечно добавить роут, по идее
Oleksii
/index.html#/
Oleksii
Помоему так должно выглядеть
Anton
это вроде для ангуляра
Anton
хотя, не уверен
Anton
ну в общем мне и index.html подошло
Anton
/index.html#/
а лучше юзать электрон билдер или электрон packager?
Oleksii
Я пользовался только билдером
Oleksii
Но собирал только под винду, так что нз
Anton
Я пользовался только билдером
Какой файл выполняется при выполнении команды electron . не тот же, что в main прописан ( в package.json )?
Oleksii
Тот же
Anton
Тот же
Ок, фронт у меня заработал, теперь нужно чтобы при запуске приложения еще стартовал бэк. Там один файл, strat-server.js, это возможно нормально реализовать?
Anton
child_proccess подойдет для этого?
Oleksii
require('start-server.js');?
Oleksii
И зачем бэк сервер на клиенте если есть electron?
Anton
У меня вопрос. А для чего вам вообще электрон?)) Если у вас сервер отдельно, отдает дашбоард или еще что-то. Почему клиенту тогда просто не заходить на локальную ссылку сервера через браузер и пользоваться? А сервер запускать каким-нибудь скриптом? Или я что-то не правильно понимаю в вашей задаче
Vadim
@arxanter они что-то колдуют, видимо ничего не читали по электрону
Anton
@arxanter они что-то колдуют, видимо ничего не читали по электрону
Вот уже второй день читаю....и даже не понимаю что ответить, чем помочь))
Anton
Electron = node.js + Chromium
Anton
если упрощенно
Vadim
Только NodeJS !== Сервак
Anton
@using_js автор треда объявись)
Anonymous
а node.js на что?
хз, как по мне с электроном по проще
Anton
Проще что? Если стоит задача сделать сервер -> раздавать веб-морду и взаимодействовать с системой. Нафига электрон?) Берешь Node.js с Express или Koa(что больше понравится, там целый зоопарк) и беришь модули взаимодействия с системой. Зачем electron? Чтобы красиво завернуть все это? Можно более простой способ для этого найти
Anonymous
привет vs code, про него можно так же сказать, "зачем электрон? есть же браузер и нода"
Anton
о господи...
Anonymous
если ему нужен электрон, пусть пишет на электроне
Anton
ок...закрываю диалог
Anton
У меня есть веб версия приложения, нужно чтобы такая же веб версия была в электроне
Anton
я не знаю зачем ему электрон, но между браузером и электроном есть разница
Вы делаете утверждение, я задаю уточняющий вопрос. В ответ вы делаете новое утверждение, не связанное с предыдущим. Так диалог не строится
Vadim
@arxanter, кстати, с маком нотарализацию решил?
Vadim
Мне заказали новый мак, т.к. текущие системы не поддерживают новую версию. Поэтому ещё не копал.
Anton
У меня есть веб версия приложения, нужно чтобы такая же веб версия была в электроне
Если SPA, то не понимаю в чем проблема. У тебя просто передается index.html c bundle.js в renderer процесс и все работает. Если SRR, тут у меня нет опыта. Но я думаю, на стороне main процесса поднимаешь Next.js и взаимодействуйешь между main и renderer. https://medium.com/@ofarukcaki/using-next-js-with-electron-f949b175da88