使用VSCode内置Node.js调试器时出现ReferenceError: $ is not defined求助
解决VSCode调试时
ReferenceError: $ is not defined的问题 你遇到的核心问题是调试阶段app.js先执行了,但jQuery还没完成加载。结合你的代码场景,我整理了几个针对性的解决方案:
1. 修复jQuery加载的协议问题
你用的//ajax.googleapis.com/...是协议相对URL,如果本地直接用file://协议打开HTML(VSCode默认直接打开时可能是这个情况),这个链接会自动变成file://ajax.googleapis.com/...,显然无法加载CDN上的jQuery资源。
解决方法:把jQuery的src改成完整的HTTPS链接:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
2. 改用本地jQuery文件(更稳定)
如果CDN加载还是不稳定,建议把jQuery下载到本地项目中,用相对路径引用,彻底避免网络和协议问题:
- 下载对应版本的jQuery压缩包,放到项目的
js文件夹下 - 修改HTML中的引用:
<script type="text/javascript" src="js/jquery.min.js"></script>
这样本地调试时完全依赖本地文件,不会出现加载失败的情况。
3. 用本地HTTP服务器运行项目(推荐)
file://协议本身存在很多限制(比如跨域、资源加载优先级异常),VSCode调试时更推荐用本地HTTP服务器来运行项目:
- 安装VSCode的Live Server插件
- 右键点击HTML文件,选择
Open with Live Server,页面会在http://localhost:5500(或类似端口)打开 - 再启动VSCode的调试器,此时协议为HTTP,CDN链接能正常加载,脚本的加载顺序也能得到保证
4. 验证jQuery是否真的加载成功
调试前可以先在浏览器控制台确认jQuery状态:
- 打开页面后,在控制台输入
typeof $ - 如果返回
"function"说明jQuery加载成功;如果返回"undefined",说明链接或路径存在问题,需要再次检查引用地址
调试时断点停在$(function() {就报错,说明此时$还未被定义,大概率是jQuery未完成加载,上面的方法应该能解决这个问题。
内容的提问来源于stack exchange,提问作者dennislee
相关产品推荐
相关产品推荐

