javascript - system.js 加载脚本时如何要求 ('electron' )

标签 javascript electron aurelia systemjs

我正在尝试在 Electron 应用程序中使用 Aurelia 和 SystemJs;

我有一个相当基本的app-window.js :

const remote = require('electron').remote;

document.getElementById("close-btn").addEventListener("click", function (e) {
  var window = remote.getCurrentWindow();
  window.close();
});

...

如果我将它作为普通的 html 脚本 ( <script src="app-window.js"></script> ) 使用,它工作得非常好。

但是,如果我有 systemJS导入它:
<script>
    System.import('app-window.js');
</script>

我得到错误:

system.js:4 GET file:///D:/Code/aurelia-electron-typescript/output/electron.js net::ERR_FILE_NOT_FOUND



我也有transpiler: false也在配置中设置。

不幸的是,我想吃蛋糕,因为我想将 Aurelia 的依赖注入(inject)与 Electron 的远程处理功能结合起来。

有没有办法让 system.js 不干预 Electron 的 require ?

最佳答案

经过快速实验......如果脚本显式加载 System,它会出现,它会神奇地工作:

typescript :

export class AppWindow
{  
  constructor()
  {
    var remote = require('electron').remote;

    document.getElementById("close-btn").addEventListener("click", function (e) {
      var window: Electron.BrowserWindow = remote.getCurrentWindow();
      window.close();
    });
  }
}
var appWindow:AppWindow = new AppWindow()

当编译为 [es6, System] 时:
System.register([], function(exports_1, context_1) {
    "use strict";
    var __moduleName = context_1 && context_1.id;
    var AppWindow, appWindow;
    return {
        setters:[],
        execute: function() {
            class AppWindow {
                constructor() {
                    var remote = require('electron').remote;
    ...

...工作得很好。

关于javascript - system.js 加载脚本时如何要求 ('electron' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37317818/

相关文章:

javascript - 想要从 .gs 文件的代码中提醒 html

javascript - 如何从 .NET 字符串序列化 javascript 函数

javascript - 使用 AJAX 在 Rails 中更新动态 ChartJS 图表

node.js - 如何使用 Nightmare 按方向键?

javascript - Aurelia 动态负载

javascript - Aurelia ValidationRules 未触发

single-page-application - Visual Studio 2017 SPA Aurelia 模板 : Where is aurelia. json?

javascript - 删除和附加元素后无法识别全局变量

json - 使用带有 react 和 Electron 的本地 JSON 文件

javascript - 在Electron应用程序中以表格形式下载图像并通过 Canvas 绘制它不起作用,我该怎么办?