【问题标题】:$ is not defined - using jQuery with electron.js$ 未定义 - 使用 jQuery 和 electron.js
【发布时间】:2018-10-21 08:42:09
【问题描述】:

我知道有很多已知的解决方案。但没有一个有效。我不断收到此错误:

Uncaught Exception:
ReferenceError: $ is not defined
    at: .....

请注意,我使用的是 npm 安装的 jQuery(npm install jquery --save)。

我试过这样做:

<script> 
    window.nodeRequire = require; 
    delete window.require;
    delete window.exports; 
    delete window.module; 
    window.$ = window.jQuery = require('jquery');
</script>

但仍然出现错误。

然后我尝试了:

<script>window.$ = window.jQuery = require('jquery');</script>

但这也没有用。

我也尝试使用本地文件:

<script>window.$ = window.jQuery = require('./jquery-3.3.1.min.js');</script>

但又一次,我得到了可怕的“$ 未定义”错误。 有人可以解释发生了什么。我了解这些解决方案应该如何工作,但我不明白为什么它们对我不起作用。

这是我当前状态下的完整 HTML 页面:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>...</title>
  </head>
  <body>
    <h1>Test</h1>
    <div id = "test"></div>
    <script>window.$ = window.jQuery = require('./jquery-3.3.1.min.js'); 
   </script>

    <script>
      require('./renderer.js')
    </script>

  </body>
</html>

我在https://github.com/electron/electron-quick-start 使用电子快速入门开始了这个项目。

提前致谢。

编辑:有趣的是,oauth 库也干扰了 jquery。但是即使删除了oauth,它仍然是坏的。

【问题讨论】:

  • @highhope 我试过了,试过了,但没用。我什至开始了一个新项目,但没有成功。我应该重新安装 NPM 还是电子?我真的不知道该怎么办。
  • 有趣。我forkedquick-start 示例& 我能够让jQuery 工作。我安装的节点版本是v8.10.0

标签: javascript jquery electron


【解决方案1】:

我还在我的 Electron 项目中完成了 npm install jquery --save

我让 jQuery 工作的方法是在我的 HTML 之前任何其他 &lt;script&gt; 标记的 &lt;head&gt; 标记中要求它。

<!DOCTYPE html>
<html lang="en">
  <head>
    ...
    <!-- jQuery (Should be declared before other JS imports) -->
    <script>
      var $ = jQuery = require("jquery")
    </script>
    ...
    <script src="../node_modules/jquery/dist/jquery.slim.min.js"></script>
    <script src="../node_modules/popper.js/dist/umd/popper.min.js"></script>
    <script src="../node_modules/bootstrap/dist/js/bootstrap.min.js"></script>
    ...
  </head>
  <body>
    ....
  </body>
</html>

我需要为 Bootstrap 安装 jQuery,所以在为 jQuery 声明脚本源导入之前需要它,然后是我需要的其他 JS。

编辑 集成electron-forge 后,上述解决方案不再适用于我。起作用的是这里提到的解决方案:https://stackoverflow.com/a/37480521/1392578

【讨论】:

  • 感谢您的回答!不幸的是,这也不起作用....虽然我确实注意到了一些东西。 jQuery 文件已正确加载到应用程序中,并且仅当我将 $ 用于 jQuery 时才会出现错误。不确定这是否是一个重要的细节。谢谢。
  • 问题:你在哪里调用 jquery 并得到一个错误?
  • 你没有在主(后台)进程中使用jQuery,是吗?
  • @zbnrg 我忘了提到这些东西目前正在进入我的 main.js 文件中(这可能是问题吗?)
  • @Neil 这正是我正在做的事情,应该意识到这就是问题所在。将尽快对其进行测试以确认其问题所在。 ://
猜你喜欢
  • 1970-01-01
  • 2022-12-11
  • 2019-08-01
  • 2020-07-02
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 2012-02-09
  • 2022-01-01
相关资源
最近更新 更多