我正在尝试在 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/