求助!requeirjs到底怎么用啊?

berg369 2015-05-19 05:36:07
我们大部分js是基于jquery的,原来的做法是把jquery、jquery-ui等常用js都在inclide页面全部引入,具体页面根据需要再引入其它的。造成页面过大,想用requirejs改进一下。
我的目的:
1、每个页面可默认引入jquery,其它的js文件视需要在html页面中引入
2、在页面引入时能够直接写模块名,不带版本号等
3、可以正常使用第三方jquery插件
但是我怎么也做不出来,求助大家!照着网上的例子写了代码如下:

app.js

require.config({
baseUrl: './resource/js',
shim: {
'jquery.validate': ['jquery'],
"jquery.cookie" : ["jquery"]
},
paths: {
jquery: 'jquery-1.11.3.min',
'jquery.validate':'jquery.validate.min',
'jquery-ui':'jquery-ui.min'
}
});

注意上面的paths中,我希望在这里配置具体的文件版本号,引入时能够直接写模块名不带.min及1.11.3.min的方式,但不行!
首页index.html:

<!-- 引入require.js和入口文件 -->
<script src="./resource/js/require.js" data-main="./resource/js/app"></script>
<script>
requirejs(['jquery-1.11.3.min','jquery-ui.min','jquery.cookie','jquery.validate.min'],function ($) {
$(function() {
<!-- 这里执行js方法 -->
$( "#dialog-message" ).dialog({
modal: true,
width:300,
height:180,
autoOpen: false
});
......
});
});
</script>

上面的代码中,引入jquery、jquery-ui和jquery.validate时,仍然写了完整的文件名,才能获取到。可以执行代码。但是报许多错误:
Uncaught ReferenceError: jQuery is not defined jquery.cookie.js 25
Uncaught ReferenceError: $ is not defined jquery.validate.min 1
Uncaught TypeError: undefined is not a function index.html 74 (即$( "#dialog-message" ).dialog({这一行)
另外,在页面引入时,用的是requirejs,有些例子是用require或define,改为require可以用,但改为define就报错:
Uncaught Error: Mismatched anonymous define() module: function ($) {
...
我真被这些概念搞晕了!看了requirejs官网上的说明,还是搞不明白,请指教,感谢!
...全文
218 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Tomihaohao 2015-05-20
  • 打赏
  • 举报
回复

requirejs(['jquery','jquery-ui','jquery.cookie','jquery.validate'],function ($,b,c,d) {
    $(function() {
       <!-- 这里执行js方法 -->
      $( "#dialog-message" ).dialog({
          modal: true,
          width:300,
          height:180,
          autoOpen: false
     });
        ......
    });
});

87,888

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧