Copyright (C) 2013-2017 fmdjs.org
Licensed under the MIT.

Configuration Options

fmd.config是个函数,用来定义或更新或取得相关配置项,其只有一个参数

当参数为对象时,是定义或更新

fmd.config({
    'configItem1': 'value1',
    '...': '...'
});

当参数为字符串时,是取得当前字符串所代表的配置项

fmd.config('debug');//true or false

alias

alias<object>是个对象,用来配置模块id的别名,以简化常用模块的书写

fmd.config({
    alias: {
        'a': 'case/a'
    }
});

那么在其他模块中被使用(dependencies/require/require.use)到时均可用a来代替case/a,当然在模块case/a定义时其id必须是case/a

重复定义同名alias的,后来者将覆盖前者

async

async<boolean>是个布尔值,默认为true,用来设置dependencies中的依赖模块是否可以异步加载,若为true,此处的异步加载如同require.use一样会循环取得所有直接间接依赖的模块

fmd.config({
    async: true
});

resolve

resolve<function>是个函数,当需要根据id取得url时执行,其参数只有一个,即将要被转换的id,然后必须return经过resolve后的id

fmd.config({
    resolve: function( id ){
        //todo sth;
        return id;
    }
});

resolve函数可以定义多个,不覆盖,按先进先出依次执行,一旦resolve成功(只要id发生了任何的改变即认为是成功),就退出整个resolve环节

baseUrl

baseUrl<string>是字符串,作为异步取文件时文件url的基础部分,默认值为当前fmd.js文件所在src的protocol+'//'+host+'/',例如http://fmdjs.org/

fmd.config({
    baseUrl: 'http://fmdjs.org/'
});

baseUrlresolve之后,加时会先判断当前url是否为绝对路径,否才加

hasStamp

hasStamp<boolean>是个布尔值,默认为false。为true时给每个需要异步取的url加上默认时间戳,为false时不加

fmd.config({
    hasStamp: false
});

stamp

stamp<object>是个对象,用来设定某id被resolve成url之后所加的时间辍,其每个子对象必须是符合正则的字符串

fmd.config({
    stamp: {
        'case/a': '20130407',
        '^case': '20130408'
    }
});

重复定义同名的stamp时,后来者将覆盖前者。解析时间戳时,一旦匹配到,即退出整个匹配环节

不论hasStamp是否为true,只要被stamp匹配到,即以stamp匹配的为最后时间戳

注意:对于规则的匹配采用for-in,先后顺序不定,请尽量保持各规则的互斥

timeout

timeout<number>是个以毫秒为单位的数字,作为加载资源时的超时时间,默认为10000

fmd.config({
    timeout: 10000
});

charset

charset<string>为字符串,即指定加载资源的字符集,默认不指定

fmd.config({
    charset: 'gbk'
});

hasCatch

hasCatch<boolean>是布尔值,默认为false,其值为true时编译模块过程将被try catch

fmd.config({
    hasCatch: true
});

debug

debug<boolean>是布尔值,默认为false,其值为true时进入debug状态

fmd.config({
    debug: true
});