Alexander
Ну конечно
Alexander
Я просто не знаю особонности работы с реактом, так что затрудняюсь
Anton
ок, а если, скажем, нужно поднять сервер, который будет статику раздавать, то как это бы вы сделали?
Alexander
Ну я бы поднял сервер на ноде
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
как это сделать на электроне?
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)
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
Oleksii
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
Но собирал только под винду, так что нз
Oleksii
Тот же
Anton
Тот же
Ок, фронт у меня заработал, теперь нужно чтобы при запуске приложения еще стартовал бэк. Там один файл, strat-server.js, это возможно нормально реализовать?
Anton
child_proccess подойдет для этого?
Oleksii
require('start-server.js');?
Oleksii
И зачем бэк сервер на клиенте если есть electron?
Anton
У меня вопрос. А для чего вам вообще электрон?)) Если у вас сервер отдельно, отдает дашбоард или еще что-то. Почему клиенту тогда просто не заходить на локальную ссылку сервера через браузер и пользоваться? А сервер запускать каким-нибудь скриптом?
Или я что-то не правильно понимаю в вашей задаче
Vadim
@arxanter они что-то колдуют, видимо ничего не читали по электрону
Anonymous
Vadim
Anton
Anton
Electron = node.js + Chromium
Anton
если упрощенно
Vadim
Только NodeJS !== Сервак
Anton
@using_js автор треда объявись)
Anton
Anton
Проще что? Если стоит задача сделать сервер -> раздавать веб-морду и взаимодействовать с системой. Нафига электрон?) Берешь Node.js с Express или Koa(что больше понравится, там целый зоопарк) и беришь модули взаимодействия с системой. Зачем electron? Чтобы красиво завернуть все это? Можно более простой способ для этого найти
Anonymous
Anonymous
привет vs code, про него можно так же сказать, "зачем электрон? есть же браузер и нода"
Anton
о господи...
Anonymous
если ему нужен электрон, пусть пишет на электроне
Anton
ок...закрываю диалог
Anton
У меня есть веб версия приложения, нужно чтобы такая же веб версия была в электроне
Anonymous
Vadim
Anonymous
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