电子文件结构和构建应用程序

时间:2016-01-12 19:34:09

标签: javascript node.js electron

我最近了解到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

1 个答案:

答案 0 :(得分:1)

$ is undefined的错误也是我遇到的错误。问题在于nodeintegration中的BrowserWindow功能。因此,您可以通过在nodeintegration构造函数中传递nodeintegration: false选项来关闭BrowserWindow。或者,您可以在index.html

上的jquery脚本标记和时刻脚本标记之间添加以下脚本标记
<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

如果这有帮助,请告诉我。