fmd.js
Version:
another module writing system
83 lines (81 loc) • 4.23 kB
HTML
<html>
<head>
<meta charset="utf-8"/>
<title>Plugins - fmd.js</title>
<link rel="stylesheet" href="/assets/tpl.css"/>
</head>
<body>
<header>
<h1><a href="/"><img src="/assets/fmd.js.png"/></a></h1>
<nav>
<ul>
<li><a href="/test/runner.html">Unit Testing</a></li>
</ul>
<ul>
<li><a href="https://github.com/fmdjs/fmd.js">GitHub Repository</a></li>
<li><a href="https://github.com/fmdjs/fmd.js/issues/new">Submit Issues</a></li>
</ul>
</nav>
<p>Copyright (C) 2013-2017 fmdjs.org<br/>Licensed under the MIT.</p>
</header>
<aside>
<ul>
<li><a href="/docs/quick-start.html">Qucik Start</a></li>
</ul>
<section>
<h1>Basic API</h1>
<ul>
<li><a href="/docs/api/define.html">Define a module</a></li>
<li><a href="/docs/api/require.html">Built-in module 'require'</a></li>
<li><a href="/docs/api/exports.html">Built-in module 'exports'</a></li>
<li><a href="/docs/api/module.html">Built-in module 'module'</a></li>
<li><a href="/docs/api/@fmd.html">Built-in module '@fmd'</a></li>
<li><a href="/docs/api/config.html">Configuration Options</a></li>
<!--
<li><a herf="/docs/api/id-conversion.html">id2url</a></li>
-->
<li><a href="/docs/api/events-basic.html">Basic Events</a></li>
<li><a href="/docs/api/load-css.html">Load CSS</a></li>
<li><a href="/docs/api/auxiliary.html">Auxiliary</a></li>
</ul>
</section>
<section>
<h1>Advanced API</h1>
<ul>
<li><a href="/docs/plugins.html">Plugins</a></li>
<li><a href="/docs/api/plugin-non.html">Plugin 'non'</a></li>
<li><a href="/docs/api/plugin-combo.html">Plugin 'combo'</a></li>
<li><a href="/docs/api/events-advanced.html">Advanced Events</a></li>
</ul>
</section>
<section>
<h1>Node.js</h1>
<ul>
<li><a href="/docs/in-node.html">Use in Node.js</a></li>
</ul>
</section>
</aside>
<article>
<h1 id="plugins">Plugins</h1>
<p>fmd.js提供了针对异步加载这一行为的插件的机制,此处的插件是指通过对所依赖模块的id的特殊标记从而对加载依赖模块进行某种特殊处理的功能</p>
<p>插件的标记语法如下:</p>
<pre class="sh_javascript">define( ['xxx!mod/a','xxx!mod/b'], function( a, b ){
//todo sth
} );</pre>
<p><code>xxx!mod/a</code>即是此匿名模块对依赖模块<code>mod/a</code>的特殊标记,<code>!</code>前的<code>xxx</code>是插件名称,即通过<code>!</code>来分隔依赖模块id中的插件名称部分和原始id部分</p>
<p>插件<code>xxx</code>实现了某种特殊加载机制。在该匿名模块初始化时去异步加载<code>mod/a</code>时,将通过<code>xxx</code>插件实现的机制来加载,而非默认的加载方式</p>
<p>目前已实现的插件有<a href="/docs/api/plugin-non.html">non插件</a>、<a href="/docs/api/plugin-combo.html">combo插件</a></p>
<h2 id="downloads">Downloads</h2>
<p>下载<a href="/dist/fmd/plugin.js">fmd/plugin</a>模块,将其引入在fmd.js之后,再引入相应的插件模块即可</p>
<p>当然,也可以自行打包,将此文件打包进fmd.js</p>
<h2 id="config">Config</h2>
<p>插件机制会引入一个配置项<code>plugin<boolean></code>,即使引入了<code>fmd/plugin</code>模块,也可以通过如下方式将插件机制关闭</p>
<pre class="sh_javascript">fmd.config({
plugin: false
});</pre>
</article>
<script src="/dist/fmd.js"></script>
<script src="/assets/sh.js"></script>
</body>
</html>