我最近了解到Electron,它似乎是创建桌面应用程序的一种非常好的方式。我创建了一个简单的Twitter聚合器,一旦我运行.then
就可以工作,我想用Atom打包它,在我的计算机上运行它自己的窗口。
据我所知,电子应用必须在根目录中有一个package.json和一个main.js文件来运行电子。因此,出于组织目的,我创建了一个名为/ app的文件夹,其中包含我的twitter聚合器文件。
当我运行nodemon app.js
时,它会启动电子并打开一个加载我的index.html文件的浏览器窗口。但是我有两个问题:
1)它在控制台中给出了一个错误 - 参考错误:$未定义
2)如何让它运行/app/app.js(这是在后端使用Twitter API的原因)?
这是我的github回购:https://github.com/OneHunnid/dimmiDesktopApp
答案 0 :(得分:1)
$ is undefined
的错误也是我遇到的错误。问题在于nodeintegration
中的BrowserWindow
功能。因此,您可以通过在nodeintegration
构造函数中传递nodeintegration: false
选项来关闭BrowserWindow
。或者,您可以在index.html
<script type="text/javascript">
if(window && !window.$ && !window.jQuery && module && module.exports && module.exports){
window.$ = window.jQuery = module.exports;
}
</script>
这是因为当jQuery引导时,它会检查它是否可以检测到module
。通常在浏览器中没有。因此,如果module
存在,那么jQuery将附加为module.exports
。所以,你只需要包含这个脚本,它将window.$
和window.jQuery
设置为module.exports
,这是jQuery引导到的地方。
那应该解决你的第一个问题。
至于您的第二个问题,您应该在index.html中添加以下内容以使其正常工作。
<script src="app.js"></script> //if not app.js, app/app.js
如果这有帮助,请告诉我。