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