首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用RequireJS + jQuery加载RequireJS

用RequireJS + jQuery加载RequireJS
EN

Stack Overflow用户
提问于 2014-02-16 11:11:39
回答 1查看 425关注 0票数 0

我正在尝试用jCarousel加载一个名为RequireJS的java插件。我的项目结构如下:

代码语言:javascript
复制
[project root]
  assets
    app
    js
      app.js
      vendor
        jquery-2.1.0.js
        jquery.jcarousel-core.js
        require.js

我使用的是shim配置,所以我首先加载RequireJS,如下所示:

代码语言:javascript
复制
    <script data-main="assets/js/app" src="assets/js/vendor/require.js"></script>

然后在app.js中,我有一个RequireJS的配置:

代码语言:javascript
复制
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',例如:

代码语言:javascript
复制
        return Plugin;
    };
}(jQuery));  // THIS IS THE OFFENDING LINE

这里的任何指导都将不胜感激!

基于应答解决方案

所以这里的问题是,正如@MakeeshSapkal所言,我的jcarousel模块的shim配置中的行不应该包括.js。所以配置应该是:

代码语言:javascript
复制
requirejs.config({
    "baseUrl": "assets/js/vendor",
    "paths": {
      "app": "../../app"
    },
    "shim": {
        "jquery.jcarousel-core": ["jquery-2.1.0"]
    }
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-16 11:50:31

从shim配置中删除.js。:)

代码语言:javascript
复制
"shim": {
    "jquery.jcarousel-core": ["jquery-2.1.0"]
}

希望这能成功!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21810326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档