Skip to content

1.配置参数说明

gzxishan edited this page May 18, 2020 · 1 revision

一、使用例子

xsloader(config);

二、config格式

{
    baseUrl:"",
    urlArgs:{},
    autoUrlArgs:false,
    jsExts:[".js", ".js+",".es6", ".jsx", ".vue",".*",".htmv_vue"],
    autoExt:true,//是否使用自动后缀,需要后台配合,且必须含有路径分隔符/;若为true、则发送的后缀为.*
    autoExtSuffix:".*",
    paths:{},
    depsPaths:{},
    deps:{},
    modulePrefix:{},
    defineFunction:{},
    defaultVersion:{},
    waitSeconds:10,
    properties:{
        name1:anyType,
        name2:{
            subName1:anyType
        },
        name3:"123",
        name4:"name${name3}-${name2.subName1}",
        name5:function(){}
    },
    plugins:{
        loading:{//顶部加载进度条
            enable: true,//在xsloader的script标签上增加disabled-loading属性可以高优先级地设置enable为false
            color: '#2196f3',
            bgColor:'rgba(0,0,0,0.1)',
            errColor: '#f5222d',
            duration: 0.2,
            height: 1,
            delay: 500,
        },
        css:{
            inverse:true,//是否逆向添加css:不同模块间添加style的顺序是与依赖顺序相反的,如A(内部加载A.css)依赖B(内部加载B.css),则在head中A.css在B.css的后面
        },
        image:{
            timeout:10000,//超时时间,毫秒
        },
        xsmsg:{
            timeout:30000,//全局默认连接超时时间,毫秒
            sleep:500,//连接检测的休眠时间,毫秒
        },
	ifmsg:{
		connTimeout: 30000, //连接超时时间,毫秒
		sleepTimeout: 20, //连接检测的休眠时间,毫秒
	}
    },
    props:{//加载器使用的配置
        addVersion:true,//加载模块时、是否添加xsloader版本。
        innerDepType:"auto",//添加require("...")或require.get("...")的依赖,取值范围auto、disable、require、require.get
    }
}

三、属性说明

1.baseUrl

【String】基础参考路径,默认为当前页所在目录。


2.路径:相对与绝对路径;

  1. ./ 表示当前目录;
  2. ../ 表示上一级目录;
  3. xx/ 表示相对于baseUrl;
  4. //xxx、/xxx、https://xxx、http://xxx 表示绝对地址 ;

3.modulePrefix

【对象】用于替换模块url(或urlArgs中)的前缀,其中prefix不能以"."、"/"开头。

{
    "prefix1":{
    		replace:"替换的内容"
    },
    "prefix2":{
    		replace:"替换的内容"
    }
}

例如

{
    "lib/":{
    		replace:"/cdn/lib/"
    },
    "lib2/":{
    		replace:"/cdn2/lib/"
    }
}

所有的"lib/"前缀会替换成"/cdn/lib/","lib2/"前缀会替换成"/cdn2/lib/"。


4.urlArgs

【对象】

{
    "key":value,
    "key2":value2
}

对key的说明:

  1. key以"."开头,表示相对于xsloader地址的模块;
  2. key为绝对地址;
  3. key为相对于baseUrl的地址(不以"."开头的相对地址);
  4. key为含有modulePrefix前缀的地址;
  5. key为模块名;
  6. key以"*["开头,表示指定前缀的地址,支持相对地址("."开头相对于xsloader地址,其他相对于baseUrl);(支持modulePrefix前缀替换)
  7. key以"*]"开头,表示指定后缀的地址;
  8. key为"*"时,表示对所有模块,但优先级最低,其他模块的重名地址参数会覆盖*的;

对value的说明:

  1. value为字符串;
  2. value为函数function(moduleNameOrUrl),函数this为当前配置对象,返回值为字符串;

5.autoUrlArgs

【boolean】默认为false,优先于urlArgs。自动添加当前时间_t=currentTimeMillis到url上。


6.paths

【String/String[]】用于指定模块的路径(以".js"为后缀),不能使用插件,当为数组时、会按照顺序加载、直到有一个成功。


7.depsPaths

【String/String[]】用于指定模块的路径(以".js"为后缀),不能使用插件,当为数组时、会按照顺序加载、直到有一个成功。可以为其中的模块配置依赖。


8.deps

【对象】用于配置依赖。

{
    "key":value,
    "key2":value2
}

对key的说明:

  1. key为"*"表示对depsPaths(以及加载服务的主文件)中的所有模块加上此依赖;
  2. key的格式为"path_or_module1::path_or_module2::path_or_module3..."表示为指定的模块或路径js添加依赖;

对value的说明:(支持插件调用)

  1. value为字符串,添加一个依赖;
  2. value为数组,添加多个依赖(会作为内嵌依赖,第一参数可为boolean值、表示orderDep,默认false;内部又支持嵌套的内嵌依赖、orderDep默认为true);

9.defineFunction

【对象】模块定义回调函数,moduleName可能是js绝对路径(没有定义模块名的)。

{
    "moduleName":function(originCallback,originThis,originArgs)
    {
        return originCallback.apply(originThis, originArgs);
    }
}

10.defaultVersion

【对象】默认包名。

{
    'group:project':'versionName'
}

11.waitSeconds

【number】require等待时间,单位秒,默认10。


12.properties

【对象】用于配变量,所有的字符串都可以使用变量。

{
    name1:anyType,
    name2:{
    	subName1:anyType
    },
    name3:"123",
    name4:"name${name3}-${name2.subName1}",
    name5:function(){//注意:this为当前的properties
    
    }
}

说明:

  1. 属性值是function的,会执行(this为当前的properties)得到结果;且函数会在属性引用前处理;
  2. 通过${properName}引用字符串属性;
  3. 通过$[properName]引用属性(对应的属性值可以是任何类型,除了undefined与function);
  4. key中也支持属性引用(除了properties);

13.loading

【对象】用于设置require时顶部加载进度条,只对第一个require有效,以下值为默认值。

loading:{//顶部加载进度条
    enable: true,
    color: '#2196f3',
    bgColor:'rgba(0,0,0,0.1)',
    errColor: '#f5222d',
    duration: 0.2,
    height: 1,
    delay: 500
}
  • color:进度条颜色。
  • bgColor:背景颜色。
  • errColor:require失败的颜色。
  • duration:过渡动画时间,单位秒。
  • height:进度条高度。
  • delay:延迟显示进度条的时间,单位毫秒;若在此时间内已经加载成功、则不会显示。

13.xsloader.onError

全局异常回调。

xsloader.onError=function(code,errinfo){
    console.error(code);
    console.error(errinfo);
};