javascript - Electron 文件结构和构建应用程序

标签 javascript node.js electron

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

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

相关文章:

javascript - 使用 JavaScript 的功能表单检查未出现

mongodb - 我如何根据 _id 使用 Mongoose 进行更新?

javascript - 从express js中的先前路由处理程序获取参数

javascript - 为什么选择( Mongoose 查询)不起作用?

javascript - IE8中Dojo 1.7.2引起的内存泄漏

javascript - js 中的对象数组?

jquery - Summernote 和 Electron : Uncaught Error: Cannot find module 'jquery'

javascript - Youtube 视频不在 Electron 应用程序中播放,但在网站中播放

javascript - Electron 中的 React Router 6 - 没有路线匹配位置

javascript - jQuery Javascript 图像放大镜