javascript - RequireJS的模块化管理只针对单个页面?

查看:62
本文介绍了javascript - RequireJS的模块化管理只针对单个页面?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

  • 这两天在学习RequireJS的模块化管理,阅读了很多示例代码。

  • RequireJS主要是在页面中通过<script src="require.js">标签的data-main属性,统一配置其他JS文件模块的加载,从而实现按顺序控制JS模块的加载,以及依赖关系。

  • 想问,RequireJS的模块化管理,仅仅是针对单个页面吗?也就是说,在每个页面的模块引入都要写一套Require.config()配置?是这样吗?


  • 以下,是我自己写的一个简单案例:

/** 文件目录 **/
  + - app.html
  |
  + - main.js
  |
  + - script
      |
      + - a.js
      |
      + - b.js
      |
      + - jquery.min.js
      |
      + - angular.min.js

//a.js
define({
    name : 'William'
});

//b.js
define(['a'],function(a){
    return {
        sayHello : function(){
            console.info('hello,my name is' + a.name);
        }
    }
})

//main.js
require.config({
    baseUrl : 'script',
    paths : {
        'a' : 'a',
        'jquery' : 'jquery.min',
        'angular': 'angular.min'
    },
    shim : {
        angular : {
            exports : 'angular'
        }
    }
});
require(['b','a','jquery','angular'],function(b,a,$,angular){
    //测试代码
    b.sayHello();    
    console.info("name:" + a.name);
    $(document).ready(function(){
        console.info('jquery is ready');
    });
    try{
        angular.module('testModule',[]);
    }catch(e){
        console.error(e.message);
    }
});

<!-- app.html  -->
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <script data-main='main.js' src="//cdn.bootcss.com/require.js/2.3.3/require.js"></script>
    </body>
</html>

解决方案

每个页面确实要引用,但是可以将require.config配置的内容也放进一个单独的文件中

//common.js
requirejs.config({
    baseUrl: 'js/lib',
    paths: {
        app: '../app'
    }
});

见例子https://github.com/requirejs/...

这篇关于javascript - RequireJS的模块化管理只针对单个页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆