$未定义-使用jQuery和electron.js

myss37ts  于 2022-12-08  发布在  Electron
关注(0)|答案(1)|浏览(212)

我知道有许多已知的解决方案。但没有一个工作。我不断得到这个错误:

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

请注意,我使用的是jQuery的npm安装(npm安装jquery --保存)。
我试着这样做:

<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>

但是,我又一次收到了可怕的“$ is not defined”错误。有人能解释一下发生了什么吗?我明白这些解决方案应该如何工作,但我不明白为什么它们不适合我。
下面是我的完整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上用electron快速启动启动了这个项目。
先谢谢你。
编辑:有趣的是,oauth库也干扰了jquery,但即使删除了oauth,它仍然是坏的。

8tntrjer

8tntrjer1#

我还在我的电子项目上做了npm install jquery --save
我让jQuery工作的方法是在HTML的<head>标记中要求它在任何其他<script>标记之前

<!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。

EDIT集成electron-forge后,上述解决方案不再适用。适用的是下面提到的解决方案:https://stackoverflow.com/a/37480521/1392578

相关问题