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

时间:2016-03-12 20:24:12

标签: node.js electron

在nodejs电子app中使用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>

2 个答案:

答案 0 :(得分:3)

正如已经提到的,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>

答案 1 :(得分:0)

如果您在电子应用程序中尝试,那么很可能是Jquery文件不在指定的路径中。它很可能位于/ node_modules / Jquery / ......这样的东西。尝试绝对路径。或者,如果主机连接到Internet,您应该能够使用Jquery CDN。

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

Here #254