Now that Electron has hit Chrome's 60s we can have proper module support. But of course, the standard (for very good reasons) prevents loading modules from file:
and it makes sense for both Electron and NW.js to adhere to the statusquo.
So if you were really excited and this bums you, don't worry, you are in for awesome things.
The future Electron eco-system offers two options for native ES modules:
-
Custom Electron protocol via Chromium's module loading subsystem
-
Custom NodeJS loaders via Node's module loading subsystem recommended
Both methods can coexist. In fact, so far from tests, it seems that at least for hybrid applications, using both methods together will be the more suitable path.
This focuses on the first.
Revision: Draft 2
I think I was getting a blank page previously because I didn't change
app.isReady
toapp.isReady()
in bothcreate-protocol.js
andmain.js
.I'm not a Node.js expert, but doesn't
fs.readFileSync()
lock the whole main process so that it can't e.g. respond to other requests from the renderer process until the file is read from disk?If the goal is to add this example to the official Electron documentation, then I think disabling the security warnings is not the best advice.