electronaureliasystemjsjspm

Need help importing Electron in Aurelia app


I'm using one of the skeleton-navigation, skeleton-typescript.

I'm trying to import Electron.remote so I can close the electron window from within the JS. This is what I have in config.js:

  paths: {
    "*": "dist/*",
    "github:*": "jspm_packages/github/*",
    "npm:*": "jspm_packages/npm/*",
    "node_modules:*": "node_modules/*"
  },
  map: {
    "electron": "node_modules:electron/index.js",
  }

and in my JS file I import like this:

import * as electron  from 'electron';

but I get error regarding fs.js not found in path:

Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:9000/dist/fs.js

Can someone help on how I can fix this issue?


Solution

  • This is how I fixed my issue for Aurelia Skeleton Typescript with JSPM & SystemJS: I put in index.html head which is my entry:

      <script type="text/javascript">
        window.node_require = require;
        delete window.require;
        delete window.exports;
        delete window.module;
      </script>
    

    Then I set nodeIntegration: true for BrowserWindow.

    And in my TS file:

    declare global {
      interface Window {
        node_require: any;
      }
    }
    
    var remote: any;
    
    if (typeof window.node_require == "function") {
      remote = window.node_require('electron').remote;
    }
    
      closeApp() {
        var window = remote.getCurrentWindow();
        window.close();
      }