我正在使用骨架导航,骨架 - 打字稿之一。
我正在尝试导入Electron.remote,以便我可以从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.js的错误:
Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:9000/dist/fs.js
有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
取决于您选择的加载器/捆绑器策略
电子有节点require()定义。 你想在启动依赖AMD需要的应用程序之前重新定义它
https://github.com/electron/electron/issues/303
TL; DR
您想要将节点需求分配给另一个变量
window.node_require = require
然后删除原始
delete require
只有在此之后您才能使用您的应用引用脚本
在您的应用程序中,您使用node_require()
加载节点模块
答案 1 :(得分:0)
这是我用JSPM& amp;修复Aurelia Skeleton Typescript问题的方法。 SystemJS:我输入了index.html head,这是我的条目:
<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();
}