fmd.js
Version:
another module writing system
140 lines (138 loc) • 7.21 kB
HTML
<html>
<head>
<meta charset="utf-8"/>
<title>Configuration Options - 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="configuration-options">Configuration Options</h1>
<p><code>fmd.config</code>是个函数,用来定义或更新或取得相关配置项,其只有一个参数</p>
<p>当参数为对象时,是定义或更新</p>
<pre class="sh_javascript">fmd.config({
'configItem1': 'value1',
'...': '...'
});</pre>
<p>当参数为字符串时,是取得当前字符串所代表的配置项</p>
<pre class="sh_javascript">fmd.config('debug');//true or false</pre>
<h2 id="alias">alias</h2>
<p><code>alias<object></code>是个对象,用来配置模块id的别名,以简化常用模块的书写</p>
<pre class="sh_javascript">fmd.config({
alias: {
'a': 'case/a'
}
});</pre>
<p>那么在其他模块中被使用(dependencies/require/require.use)到时均可用<code>a</code>来代替<code>case/a</code>,当然在模块<code>case/a</code>定义时其id必须是<code>case/a</code></p>
<p>重复定义同名alias的,后来者将覆盖前者</p>
<h2 id="async">async</h2>
<p><code>async<boolean></code>是个布尔值,默认为<code>true</code>,用来设置<code>dependencies</code>中的依赖模块是否可以异步加载,若为<code>true</code>,此处的异步加载如同<code>require.use</code>一样会循环取得所有直接间接依赖的模块</p>
<pre class="sh_javascript">fmd.config({
async: true
});</pre>
<h2 id="resolve">resolve</h2>
<p><code>resolve<function></code>是个函数,当需要根据id取得url时执行,其参数只有一个,即将要被转换的id,然后必须<code>return</code>经过resolve后的id</p>
<pre class="sh_javascript">fmd.config({
resolve: function( id ){
//todo sth;
return id;
}
});</pre>
<p><code>resolve</code>函数可以定义多个,不覆盖,按先进先出依次执行,一旦resolve成功(只要id发生了任何的改变即认为是成功),就退出整个resolve环节</p>
<h2 id="baseurl">baseUrl</h2>
<p><code>baseUrl<string></code>是字符串,作为异步取文件时文件url的基础部分,默认值为当前fmd.js文件所在src的<code>protocol+'//'+host+'/'</code>,例如<code>http://fmdjs.org/</code></p>
<pre class="sh_javascript">fmd.config({
baseUrl: 'http://fmdjs.org/'
});</pre>
<p>加<code>baseUrl</code>在<code>resolve</code>之后,加时会先判断当前url是否为绝对路径,否才加</p>
<h2 id="hasstamp">hasStamp</h2>
<p><code>hasStamp<boolean></code>是个布尔值,默认为<code>false</code>。为<code>true</code>时给每个需要异步取的url加上默认时间戳,为<code>false</code>时不加</p>
<pre class="sh_javascript">fmd.config({
hasStamp: false
});</pre>
<h2 id="stamp">stamp</h2>
<p><code>stamp<object></code>是个对象,用来设定某id被resolve成url之后所加的时间辍,其每个子对象必须是符合正则的字符串</p>
<pre class="sh_javascript">fmd.config({
stamp: {
'case/a': '20130407',
'^case': '20130408'
}
});</pre>
<p>重复定义同名的stamp时,后来者将覆盖前者。解析时间戳时,一旦匹配到,即退出整个匹配环节</p>
<p>不论<code>hasStamp</code>是否为<code>true</code>,只要被<code>stamp</code>匹配到,即以<code>stamp</code>匹配的为最后时间戳</p>
<p><strong>注意:对于规则的匹配采用for-in,先后顺序不定,请尽量保持各规则的互斥</strong></p>
<h2 id="timeout">timeout</h2>
<p><code>timeout<number></code>是个以毫秒为单位的数字,作为加载资源时的超时时间,默认为10000</p>
<pre class="sh_javascript">fmd.config({
timeout: 10000
});</pre>
<h2 id="charset">charset</h2>
<p><code>charset<string></code>为字符串,即指定加载资源的字符集,默认不指定</p>
<pre class="sh_javascript">fmd.config({
charset: 'gbk'
});</pre>
<h2 id="hascatch">hasCatch</h2>
<p><code>hasCatch<boolean></code>是布尔值,默认为<code>false</code>,其值为<code>true</code>时编译模块过程将被<code>try catch</code></p>
<pre class="sh_javascript">fmd.config({
hasCatch: true
});</pre>
<h2 id="debug">debug</h2>
<p><code>debug<boolean></code>是布尔值,默认为<code>false</code>,其值为<code>true</code>时进入debug状态</p>
<pre class="sh_javascript">fmd.config({
debug: true
});</pre>
</article>
<script src="/dist/fmd.js"></script>
<script src="/assets/sh.js"></script>
</body>
</html>