Игорь
Вопрос о contextMenu
Игорь
Так-то работает но если я правой кнопкой нажму на другой row то выделение строки не происходит, а данные есть как мне его подсветить? Это bootstrap-vue
Игорь
не по теме но все же может у кого опыт есть, у меня в electron это
Maksim
https://stackoverflow.com/questions/10765854/css-set-color-for-selected-row-in-a-table
Игорь
https://stackoverflow.com/questions/10765854/css-set-color-for-selected-row-in-a-table
Спасибо. Вопрос решен через час после моей публикации
Sergey
Всем привет. А кто-нибудь сталкивался с такой проблемой, что скролл контейнера останавливается когда мышь наводится на child-элемент этого контейнера. Вроде в чистом браузере подобного поведения не наблюдаю. Если чставлю pointer-events: none то всё скроллится нормально, но тогда я клики не могу отлавливать на элементах.
Игорь
Привет. При установке electron . как решить?
🅰️nimeCoder
Привет. При установке electron . как решить?
ну наверное ты прилу не подписал
Saks
Did anyone automated electron js application through selenium java
A.
Господа, приветствую
A.
подскажите пожалуйста, на angular 13 v и electron 23v как из компонетов angulara вызвать closeWindow() { this.electron.window.close(); } minimizeWindow() { this.electron.window.minimize(); }
Rewrite
подскажите пожалуйста, на angular 13 v и electron 23v как из компонетов angulara вызвать closeWindow() { this.electron.window.close(); } minimizeWindow() { this.electron.window.minimize(); }
при создании BrowserWindow укажи nodeIntegration: true и сможешь в рендерере (ангуляре) дергать методы электрона а вообще рекомендую это делать через ipc
A.
спасибо, попробую
A.
создал сервис import { Injectable } from '@angular/core'; // If you import a module but never use any of the imported values other than as TypeScript types, // the resulting javascript file will look as if you never imported the module at all. import { ipcRenderer, webFrame, BrowserWindow } from 'electron'; import * as childProcess from 'child_process'; import * as fs from 'fs'; @Injectable() export class ElectronService { ipcRenderer: typeof ipcRenderer | undefined; webFrame: typeof webFrame | undefined; remote: any; childProcess: typeof childProcess | undefined; window: BrowserWindow | undefined; fs: typeof fs | undefined; constructor() { // Conditional imports if (this.isElectron()) { this.ipcRenderer = window.require('electron').ipcRenderer; this.webFrame = window.require('electron').webFrame; this.remote = window.require('@electron/remote').remote; this.window = window.require('@electron/remote').remote.getCurrentWindow(); this.childProcess = window.require('child_process'); this.fs = window.require('fs'); } } isElectron = () => { return window && window.process && window.process.type; } }
A.
и вызываю
A.
ошибка: Warning: C:\Projects\Frontend\front\src\app\shared\services\electron.service.ts depends on 'electron'. CommonJS or AMD dependencies can cause optimization bailouts. For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies ./node_modules/electron/index.js:1:11-24 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Projects\Frontend\front\node_modules\electron' ./node_modules/electron/index.js:3:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Projects\Frontend\front\node_modules\electron' BREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default. This is no longer the case. Verify if you need this module and configure a polyfill for it. If you want to include a polyfill, you need to: - add a fallback 'resolve.fallback: { "path": require.resolve("path-browserify") }' - install 'path-browserify' If you don't want to include a polyfill, you can use an empty module like this: resolve.fallback: { "path": false } Process finished with exit code 1
A.
nodeIntegration: true не стоит
в main.js выставил const {app, BrowserWindow} = require('electron'); require('@electron/remote/main').initialize(); let win; function createWindow(){ win = new BrowserWindow({ nodeIntegration: true, width: 700, height: 600, frame: false, backgroundColor: '#ffffff', icon: file://${__dirname}/dist/assets/logo.png }); win.loadURL(file://${__dirname}/dist/index.html); win.webContents.openDevTools(); win.on('closed', function (){ win = null; }) } app.on('ready', createWindow); app.on('window-all-closed', function (){ if(process.platform !== 'darwin'){ app.quit(); } }) app.on('Activate', function (){ if(win == null){ createWindow(); } })
A.
win = new BrowserWindow({ width: 700, height: 600, frame: false, backgroundColor: '#ffffff', icon: file://${__dirname}/dist/assets/logo.png, webPreferences: {nodeIntegration: true} });
не помогло! Вот что это значит ./node_modules/electron/index.js:1:11-24 - Error: Module not found: Error: Can't resolve 'fs' in 'C:\Projects\Frontend\front\node_modules\electron' ./node_modules/electron/index.js:3:13-28 - Error: Module not found: Error: Can't resolve 'path' in 'C:\Projects\Frontend\front\node_modules\electron'
A.
но я же включил, как ты мне показал
A.
const {app, BrowserWindow} = require('electron'); require('@electron/remote/main').initialize(); let win; function createWindow(){ win = new BrowserWindow({ width: 700, height: 600, frame: false, backgroundColor: '#ffffff', icon: file://${__dirname}/dist/assets/logo.png, webPreferences: {nodeIntegration: true} }); win.loadURL(file://${__dirname}/dist/index.html); win.webContents.openDevTools(); win.on('closed', function (){ win = null; }) } app.on('ready', createWindow); app.on('window-all-closed', function (){ if(process.platform !== 'darwin'){ app.quit(); } }) app.on('Activate', function (){ if(win == null){ createWindow(); } })
Rewrite
но я же включил, как ты мне показал
попробуй тогда еще contextIsolation: false сделать в webPreferences
A.
не помогло
A.
import * as childProcess from 'child_process'; import * as fs from 'fs'; вот это хрень говорит не найдено, непонятно почему
A.
полный текст ошибки
Rewrite
полный текст ошибки
могу предположить что нужно еще сборщик настроить
A.
как настроить?
Rewrite
как настроить?
поменять таргет, к примеру https://stackoverflow.com/a/48476887/12962610
A.
копаюсь папках node_modules там этих файлов близко нету, не пойму откуда должен брать
A.
не нахожу такой файл webpack.config.js или мне надо установить это ?
Даниил🤑
полный текст ошибки
была такая ошибка давненько, решением на VueJS было таким:
Даниил🤑
а если конкретней то (window)
Даниил🤑
при этом webPreferences с такими параметрами:
Даниил🤑
Насколько помню, читал, что такая ошибка с FS(file system) исходит из политики защиты рендеров.
Даниил🤑
А даже на Angular нашел, вот так подключай:
🅰️nimeCoder
полный текст ошибки
Попробуй прописать в env вебпака electron-renderer
🅰️nimeCoder
Ну или что-то вроде того. Хаки с window скорее помогают избежать, но не решить проблему, да и лучше юзать context bridge, и делать приоброс нужного апи, а не тянуть электрон напрямую в ангуляр
🅰️nimeCoder
Просто вебпак пытается разрезолвить рекваир думая что он находится в обычном браузерном env, а там внутри другие нодовские модули
🅰️nimeCoder
не нахожу такой файл webpack.config.js или мне надо установить это ?
Мб где то в другом месте у тебя можно указать конфиг вебпака, ну или мб создать.. Мб подтянет
A.
A.
https://github.com/frederiksen/angular-electron-boilerplate Вот по этой инструкции делал
Rewrite
В общем по принципу context Bridge пробую, проблема в импорте появляется
ты у себя намудрил что-то с настройками и в коде, в таком случае ты сам себе помощник
A.
я вот одного не пойму почему в файле main.ts import работает в webpack.ts ругается они оба в одной папке
A.
A.
A.
вот tsconfig рядушком лежит
A.
пуфффф...., разобрался!
Алексей
Подскажите, кто-то использовал поэтапное развертывание (Staged Rollouts)? как оно работает?
Vladimir
Народ подскажите пожалуйста, в случае если в приложении есть ошибки на Винде появляется message box с ошибкой, а почему на ubuntu приложение просто крашится и закрывается?
🅰️nimeCoder
Народ подскажите пожалуйста, в случае если в приложении есть ошибки на Винде появляется message box с ошибкой, а почему на ubuntu приложение просто крашится и закрывается?
у меня и так и так появняется просто уведомление, но скорее всего ток в renderer процессе и вроде в специфичных кейсах (не просто обычные ошибки), наверное в каких то вызовах Electron API и др обычные ошибки обычно просто в консоли
Vladimir
Народ подскажите пожалуйста, в случае если в приложении есть ошибки на Винде появляется message box с ошибкой, а почему на ubuntu приложение просто крашится и закрывается?
В общем нашел проблему. Срабатывал сигнал SIGSEGV в убунту. Помогло откатиться на предыдущую версию электрона. Странно, но ошибка срабатывала на один из ipcRender.send 🤷‍♂️
Vladimir
Вдруг кому-то пригодится)
ParlFuse
Привет, начал писать программку на Electron.js и появился закономерный вопрос... как писать программу в лайв режиме без постоянного запуска дебага?
ParlFuse
условно, изменил код -> сразу же изменилось приложение Есть Live Server, но я хз работает ли это с дестопом
ParlFuse
Так, покопался, с Live Server работает, но приходится постоянно релоадить программу
ParlFuse
https://www.electronforge.io/
Я попробовал фордж, но не совсем понятно как оно работает
Игорь
хз обычный вебпак там в основе
Игорь
+ официальный инструмент от Electron
ParlFuse
чёт я накосячил, ща попробую глобально всё установить
ParlFuse
тут кто-нибудь с Watch Sass работает?) помощь нужна
ParlFuse
Как динамически создавать программу на Electron.js ? Браузер сам обновляется при смене фокуса или настроенном after delay Программа же требует постоянно релоадить дабы отрисовать изменения
hashlag
о чем речь вообще
о live reload, похоже...
Andrey Sicker
Привет, начал писать программку на Electron.js и появился закономерный вопрос... как писать программу в лайв режиме без постоянного запуска дебага?
Если тебе нужны изменения чисто в браузере видеть сразу то в окне бразуера электрона делаешь Ctrl + R И все. Если с точки зрения кода самого приложения - по сути никак.
Sergey
Если тебе нужны изменения чисто в браузере видеть сразу то в окне бразуера электрона делаешь Ctrl + R И все. Если с точки зрения кода самого приложения - по сути никак.
я взял шаблон electron vite при изменении кода main процесса перезагружается целиком приложение пр изменении кода renderer процесса перезагружается страничка внутри приложения
Andrey Sicker
я взял шаблон electron vite при изменении кода main процесса перезагружается целиком приложение пр изменении кода renderer процесса перезагружается страничка внутри приложения
Ну, может так и есть. Я не работал с плагинами типа vite, vue, etc. Спектр задач не требовал их присутствие. Да и в целом - приложение работало чисто как автономный лаунчер другого приложение, только с инъекцией в память.
ParlFuse
можно
как бро?
Sergey
как бро?
https://t.me/electron_cool/51223
Sergey
vite-plugin-electron vite-plugin-electron-renderer
ParlFuse
вот такая штука вылезла
Andrey Sicker
т.е я никак не могу сразу видеть результат написания когда пока создаю программу под дестоп на Electron.js ?
Имеется ввиду Если ты меняешь код HTML страниц и прилегающих к ним JS - то просто делаешь Ctrl + R в окне приложения своего. Если ты делаешь изменения костяка приложения (Не HTML страниц) - то вон, как написал человек выше - electron vite. Или иные...