Manage file protocols in Electron
npm install --save electron-protocolsRun the example:
npm start example
First register your protocol in main process before app.on('ready'):
main process
const protocols = require('electron-protocols');
protocols.register('app', protocols.basepath(app.getAppPath()));Then you can use protocols.path to map your protocol to a file path:
renderer/main process
const protocols = require('electron-protocols');
// return the module in ${app.getAppPath()}/my/module.js
const myModule = require(protocols.path('app://my/module.js'));Also, you are free to use protocol in html in renderer process:
  <img src="app://my/image.png" />
  <script src="app://my/script.js" />It will speed up the search of protocols.path by skip calling the remote (ipc-sync) functions.
- protocolstring
- fnfunction
Register a protocol so that {@link Editor.url} can use it to convert an url to the filesystem path.
The fn accept an url Object via url.parse
Example:
const {app} = require('electron');
const protocols = require('electron-protocols');
const path = require('path');
protocols.register('app', uri => {
  let base = app.getAppPath();
  if ( uri.pathname ) {
    return path.join( base, uri.host, uri.pathname );
  }
  return path.join( base, uri.host );
});- urlstring
Convert a url by its protocol to a filesystem path. This function is useful when you try to get
some internal file. You can use protocols.register to register and map your filesystem path to url.
Example:
// it will return "{your-app-path}/foobar/foobar.js"
protocols.path('app://foobar/foobar.js');- basestring
A function help you register protocol by base path you provide.
Example:
protocols.register('app', protocols.basepath(app.getAppPath()));MIT © 2017 Johnny Wu