Comments (6)
describe repro
from electron-about-window.
Sample code taken from Electron docs :
const { app, BrowserWindow } = require('electron')
const openAboutWindow = require('about-window')
function createWindow () {
let win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
// and load the index.html of the app.
win.loadFile('index.html')
}
if (app) app.whenReady().then(createWindow);
// Do something else with the app that doesn't require electron
console.log('Yeah');
Here if (app)
ensures that we won't try to load the GUI if app
is undefined. If it's run with node's runtime (node index.js
), app
will be undefined, thus the code is avoided, and the code can proceed with stuff that doesn't require Electron.
The problem is that requiring about-window executes the top-level code of the module, which assumes electron is loaded, and thus crashes the main app with an exception. app
isn't even the problem here, remote.app
is, in about-window code, since remote
does not exist in this case.
Hope that helps.
from electron-about-window.
Thanks for the code. So minimal steps are:
- Save below code as
foo.js
- Run
node foo.js
const openAboutWindow = require('about-window')
If it's run with node's runtime (node index.js), app will be undefined
This package does not support the usage without Electron.
Though I'm still not sure to understand the situation, if you want to write up code which supports both Electron and Node.js, you would need to write code like below:
const { app, BrowserWindow } = require('electron')
function createWindow () {
// Run only on Electron
const openAboutWindow = require('about-window')
let win = new BrowserWindow({
width: 800,
height: 600,
webPreferences: {
nodeIntegration: true
}
})
// and load the index.html of the app.
win.loadFile('index.html')
}
if (app) app.whenReady().then(createWindow);
// Do something else with the app that doesn't require electron
console.log('Yeah');
from electron-about-window.
I used require for the example with JS, but I'm using import (via typescript) and imports are not conditionnal, they're loaded up no matter what, hence my request.
Version 1.13.2 worked just fine, the bug was introduced in 1.13.3 with the call to remote.app
without verifying if remote
exists.
from electron-about-window.
I fixed this in 1.13.4. Please update to the latest
from electron-about-window.
Thanks for the quick fix! That works just fine :)
from electron-about-window.
Related Issues (20)
- I set open_devtools: false, but the devtools window will still open. HOT 3
- getName is deprecated in Electron 7 HOT 3
- Version should be overridable by custom version string
- About dialog is initially blank on macOS HOT 2
- not working
- `package.json` not found in directory - only in prod HOT 1
- About window on windows seems pretty limited HOT 5
- for loop syntax error
- Windows 11 screenshot? HOT 1
- Setting about-window with electronforge and its webpack plugin HOT 5
- Feature request: option for dark mode
- Fork for Electron 14+ HOT 2
- Typescript error - Cannot find name AboutWindowInfo HOT 5
- Calling openAboutWindow multiple times presents multiple about windows HOT 1
- Electron version shown instead of application version in dev mode
- Feature request: Copy to clipboard button
- How to import "openAboutWindow" HOT 2
- How to include CSS file
- electron: Failed to load URL: file:///Users/xxx/out/main/about.html with error: ERR_FILE_NOT_FOUND
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from electron-about-window.