为什么我不能在Electron中使用脚本标记来引用jQuery?

在nodejs电子应用程序中使用jquery 我必须通过npm安装jQuery,并使用require('jquery')引用jQuery

它工作正常。

我需要知道为什么我不能像正常的浏览器中使用脚本标记附加jquery

<script src="jquery-1.12.1.min.js"></script> //getting error $ not defined

下面的代码使用脚本标签来附加jQuery,它得到一个错误,$没有被定义

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="jquery-1.12.1.min.js"></script> <!--<script>--> <!--var $ = require('jquery');--> <!--</script>--> <script> $(document).ready(function(){}); </script> <link href="style.css" rel="stylesheet"> </head> <body> <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Harum vel, ipsum nisi laboriosam nesciunt. Asperiores dolorum tempore quia, voluptatum laborum dolore officiis velit similique amet totam in? At, neque, assumenda.</p> </body> </html> 

如果你正在电子应用程序中尝试,那么很可能是Jquery文件不在指定的path中。 它很可能位于/ node_modules / Jquery / …类似的东西。 尝试一个绝对path。 或者,如果主机连接到互联网,你应该能够使用JQuery的CDN。

这似乎是一个在Electron工作的已知问题,

这里#254

正如已经指出的那样,jQuery试图很聪明,看看它是在浏览器还是在node.js环境中。 在浏览器中,它将定义$jQuery但在node.js环境中,它会尝试通过将其分配给module.exports来导出其主对象。

由于渲染器进程有node.js(和module )可用jQuery不正确地假定它包含在require

所以作为一个解决方法,你可以使用这样的东西:

 <script src="path/to/jquery/jquery.js" type="text/javascript"></script> <script type="text/javascript"> jQuery = $ = module.exports </script>