requireJS配置文件简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhanghui_hn/article/details/86585353

require参数有十几个,目前接触最多的就是这三个。

baseUrl
模块获取文件的根目录。
如果baseUrl没有被明确定义,则它的默认值是加载它HTML的文件目录;
如果data-main属性被定义了,则它的默认值是data-main中的文件所在目录。

三种例外情况,不会从baseUrl目录中加载js文件

  • 模块路径名带.js后缀
  • 模块路径以根目录/开头
  • 带URL协议的,例如http、https

paths
为不直接在baseUrl中的模块命名。

  • paths中配置的路径不用带.js后缀
  • paths中路径支持数组形式
paths: {
	jquery: [   
		//首先会尝试去加载CDN上的js文件,加载失败才加载本地jquery文件。         
		'http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min',
		'lib/jquery'
	]
}

shims
参考 https://my.oschina.net/ososchina/blog/668548

  • 导出非AMD模块化函数
//hello.js
function sayHi(name) {
    alert('Hi '+name);
}
function sayHello(name) {
    alert('Hiello  '+name);
}


// config.js
requirejs.config({
    baseUrl: '/public/js',
    paths: {
        hello: 'hello'
    },
    shim: {
        hello: {
            init: function() {        //使用init将2个函数声明出来
                return {
                    sayHi: sayHi,
                    sayHello: sayHello
                }
            }
        }
    }
});


// index.js
requirejs(['hello'], function(hello) {
    hello.sayHi('zhangsan');
    hello.sayHello('lisi');
});
  • 解决模块间的依赖问题
requirejs.config({
    shim: {
        'backbone': {
            // backbone依赖于underscore、jquery
            deps: ['underscore', 'jquery'],
            exports: 'Backbone'
        },
    }
});

猜你喜欢

转载自blog.csdn.net/zhanghui_hn/article/details/86585353
今日推荐