我正在练习node-webkit作为nodejs初学者。
我的主页是一个简单的html
页面,包括一个main.js
脚本
我已经使用 npm install jquery
安装了 jquery
索引.html
<!-- index.html -->
...
<script src="js/main.js"></script>
</head>
<body>
<div id="demo">Hi! </div>
</body>
</html>
主.js
// main.js
const $ = require('jquery')
$(document).ready(function () {
$('#demo').click(function () {
$(this).text($(this).text() + 'Hi! ')
})
})
如果我像<script src="path/to/jquery.js"></script>
一样在我的index.html
中加载 jquery,它运行良好,但如果我需要 jquery 在我的main.js
它就没有了!
我已经测试过:
-
main.js
正确地包含和使用本机 js 方法(如document.getElementById('demo').onclick = ...
( - 其他节点模块或库,如
vue
、lodash
或原生fs
,url
运行良好。所以要求功能工作得很好。 - 虽然我需要如上所述的jquery,但内联
<script>
也不起作用。
我也意识到$(document).ready(...)
有效!但真正的问题是$('#demo')
是不确定的!(我检查了控制台-我使用的是节点网络套件的SDK版本(
我不知道是因为node-webkit还是我缺少的其他东西?
找到了解决方案,我应该像这样定义jquery:
window.$ = window.jQuery = require('jquery')
这仅仅是因为 ECMAS 中的可变范围
所以如果我这样定义它,我可以在任何地方使用它