需要在Aurelia应用中进口电子的帮助



我正在使用骨架 - 动态之一,骨架类型。

我正在尝试导入电子。将电子窗口从JS内部关闭。这就是我在config.js中所拥有的:

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

,在我的JS文件中,我会导入这样的:

import * as electron  from 'electron';

,但我会在路径中发现的FS.J遇到错误:

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

有人可以帮助我如何解决这个问题吗?

取决于您选择的加载程序/bundler策略

电子具有定义的节点require((。您想在启动依赖AMD的应用程序

之前重新定义该应用程序

https://github.com/electron/electron/issues/303

tl; dr您想为另一个变量分配节点要求 window.node_require = require然后删除原始 delete require

仅在此之后,您就可以用应用程序引用脚本在您的应用中,您使用node_require()加载节点模块

这是有关:Aurelia中支持电子模块的相关评论

这是我用JSPM&修复Aurelia Skeleton打字的问题的方式。SystemJS:我放入index.html头,这是我的条目:

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

然后我为browserwindow设置了nodeIntegration: true

和我的TS文件:

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();
  }

最新更新