使用RequireJS + jQuery加载jCarousel
我正在尝试使用RequireJS加载一个名为jCarousel的java插件。 我的项目结构如下所示:
[project root] assets app js app.js vendor jquery-2.1.0.js jquery.jcarousel-core.js require.js
我正在使用shim配置,所以我首先加载RequireJS,如下所示:
然后在app.js中,我有RequireJS的这个配置:
requirejs.config({ "baseUrl": "assets/js/vendor", "paths": { "app": "../../app" }, "shim": { "jquery.jcarousel-core.js": ["jquery-2.1.0"] } }); // Load the main app module to start the app requirejs(["app/main"]);
当我使用此框架加载页面时,所有脚本似乎都加载了,但是我在浏览器控制台的jcarousel代码中出错:
未捕获的ReferenceError:未定义jQuery
这个错误似乎来自jQuery中的行 – 我不记得这个过程的技术名称 – ‘$’符号被映射到’jQuery’,例如:
return Plugin; }; }(jQuery)); // THIS IS THE OFFENDING LINE
这里的任何指导将非常感谢!
解决方案基于答案
所以这里的问题就像@MakeeshSapkal所说的那样,jcarousel模块的垫片配置中的行不应该包含.js。 所以配置应该是:
requirejs.config({ "baseUrl": "assets/js/vendor", "paths": { "app": "../../app" }, "shim": { "jquery.jcarousel-core": ["jquery-2.1.0"] } });
从垫片配置中删除.js
。 🙂
"shim": { "jquery.jcarousel-core": ["jquery-2.1.0"] }
希望这个有用!!!