Skip to content

3.插件定义,内置插件与模块

gzxishan edited this page May 18, 2020 · 11 revisions

1.自定义插件

pluginObject格式:

{
  	"pluginMain":function(pluginArgs, onload,onerror, config,dep1,dep2,...)
  	{
  	
  	},
  	"isSingle":true//当pluginArgs相同时,使用之前的
}

定义例子:

define("pluginA",[deps],{
    "pluginMain":function(pluginArgs, onload,onerror, config,dep1,dep2,...)
  	{
  	
  	}
});

define([deps],{
    "pluginMain":function(pluginArgs, onload,onerror, config,dep1,dep2,...)
  	{
  	
  	}
});
  1. onload(result,ignoreAspect=true)
  2. onerror(err)
  3. isSingle:默认为true。为true时,若pluginArgs相同则只会执行一次插件的pluginMain;若为false,始终会执行插件。

2.内置插件

css!,text!,json!

【格式】:type!resourceUrl;

ready!

【作用】:在document的ready触发时进行调用。

name!

【格式】:name!moduleName=>>modulePath 【作用】:用于给模块命名,其中moduleName用逗号隔开、表示多个名字。

window!

【格式】:window!varNameInWindow=>>modulePath 【作用】:用于把模块添加到window对象中。

withdeps!

【格式】:withdeps!modulePath=>>[deps] 【作用】:用于方便给模块添加依赖。

nodeps!

【格式】:nodeps!module 【作用】:插件用于加载某些js文件,忽略其所有依赖,可用于忽略在加载webpack等打包的模块时自动添加内部require('...')的依赖。

try!

【格式】:try!module 【作用】:尝试获取模块,若获取失败、则回调结果为null、并打印错误警告。

image!

【格式】:image!module 【作用】:用于预加载图片。

default!

【格式】:default!module 【作用】:用于获取es6+的export default模块,在define或require的依赖里使用。

3.内置模块

exports

代表当前模块,可以直接添加属性。

xshttp

网络访问模块。

xsmsg(废弃)

窗口通信模块,支持跨域。

ifmsg

窗口通信模块,支持跨域。