未捕获的ReferenceError:jQuery未定义,即使jQuery是第一个导入的脚本
在Uncaught ReferenceError之前已经问过这个问题:jQuery没有定义和Uncaught ReferenceError:$没有定义? 并测试是否加载了jquery而不使用文档就绪事件
但是,我发现浏览器上的错误为
main.js:88 Uncaught ReferenceError: jQuery is not defined at main.js:88
我的main.js
看起来像
(function($) { 'use strict'; // all functions here })(jQuery);
我在index.html
进行导入
<!---->
所以,根据其他答案, jQuery
是第一个导入。 我正在使用gulp
作为构建系统。
我的项目是从https://github.com/google/web-starter-kit分叉的
我跑了gulp serve:dist
和看
$ gulp serve:dist [11:31:41] Requiring external module babel-register [11:31:43] Using gulpfile ~/WebstormProjects/my-website/gulpfile.babel.js [11:31:43] Starting 'clean'... [11:31:43] Finished 'clean' after 27 ms [11:31:43] Starting 'default'... [11:31:43] Starting 'styles'... [11:31:43] styles all files 7.41 kB [11:31:43] Finished 'styles' after 869 ms [11:31:43] Starting 'html'... [11:31:44] Starting 'scripts'... [11:31:44] Starting 'images'... [11:31:44] Starting 'copy'... [11:31:44] html index-rwd.html 14.96 kB [11:31:44] html index.html 3.94 kB [11:31:44] html all files 18.9 kB [11:31:44] Finished 'html' after 401 ms [11:31:45] scripts all files 99.11 kB [11:31:45] Finished 'scripts' after 1.83 s [11:31:45] copy all files 6.11 kB [11:31:45] Finished 'copy' after 1.64 s [11:31:45] images all files 542.87 kB [11:31:45] Finished 'images' after 1.79 s [11:31:45] Starting 'copy-sw-scripts'... [11:31:45] Finished 'copy-sw-scripts' after 3.05 ms [11:31:45] Starting 'generate-service-worker'... Total precache size is about 222 B for 1 resources. [11:31:45] Finished 'generate-service-worker' after 8.64 ms [11:31:45] Finished 'default' after 2.85 s [11:31:45] Starting 'serve:dist'... [11:31:45] Finished 'serve:dist' after 19 ms [WSK] Access URLs: ------------------------------------- Local: http://localhost:3001 External: http://192.168.1.65:3001 ------------------------------------- UI: http://localhost:3002 UI External: http://192.168.1.65:3002 ------------------------------------- [WSK] Serving files from: dist/public
我究竟做错了什么?
您可以尝试使用它。 你在多个浏览器中得到同样的错误吗?
(function($) { 'use strict'; // all functions here })(window.jQuery);
有很多问题。
首先,在index.html
,我删除了该部分
gulp
使用它来组合JS
并将它们缩小为1个文件。 修复是添加以下内容
其次,在gulp
scripts
任务中,我不得不告诉gulp
要复制的所有脚本。 修复看起来像
gulp.task('scripts', () => gulp.src([ // Note: Since we are not using useref in the scripts build pipeline, // you need to explicitly list your scripts here in the right order // to be correctly concatenated './app/scripts/vendors/jquery-1.9.1.min.js', './app/scripts/vendors/waypoints.min.js', './app/scripts/main.js' // Other scripts ])
最后,正如@Wolfgang Leon
在Gulp中所提到的- jQuery没有定义 , jQuery v3.2.0
在某种程度上是不兼容的,所以我用jQuery v1.9.1
替换它
这有助于我完全解决问题。 #learnednewthings