UNPKG

fmd.js

Version:

another module writing system

140 lines (138 loc) 7.21 kB
<!DOCTYPE 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({ &#39;configItem1&#39;: &#39;value1&#39;, &#39;...&#39;: &#39;...&#39; });</pre> <p>当参数为字符串时,是取得当前字符串所代表的配置项</p> <pre class="sh_javascript">fmd.config(&#39;debug&#39;);//true or false</pre> <h2 id="alias">alias</h2> <p><code>alias&lt;object&gt;</code>是个对象,用来配置模块id的别名,以简化常用模块的书写</p> <pre class="sh_javascript">fmd.config({ alias: { &#39;a&#39;: &#39;case/a&#39; } });</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&lt;boolean&gt;</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&lt;function&gt;</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&lt;string&gt;</code>是字符串,作为异步取文件时文件url的基础部分,默认值为当前fmd.js文件所在src的<code>protocol+&#39;//&#39;+host+&#39;/&#39;</code>,例如<code>http://fmdjs.org/</code></p> <pre class="sh_javascript">fmd.config({ baseUrl: &#39;http://fmdjs.org/&#39; });</pre> <p><code>baseUrl</code><code>resolve</code>之后,加时会先判断当前url是否为绝对路径,否才加</p> <h2 id="hasstamp">hasStamp</h2> <p><code>hasStamp&lt;boolean&gt;</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&lt;object&gt;</code>是个对象,用来设定某id被resolve成url之后所加的时间辍,其每个子对象必须是符合正则的字符串</p> <pre class="sh_javascript">fmd.config({ stamp: { &#39;case/a&#39;: &#39;20130407&#39;, &#39;^case&#39;: &#39;20130408&#39; } });</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&lt;number&gt;</code>是个以毫秒为单位的数字,作为加载资源时的超时时间,默认为10000</p> <pre class="sh_javascript">fmd.config({ timeout: 10000 });</pre> <h2 id="charset">charset</h2> <p><code>charset&lt;string&gt;</code>为字符串,即指定加载资源的字符集,默认不指定</p> <pre class="sh_javascript">fmd.config({ charset: &#39;gbk&#39; });</pre> <h2 id="hascatch">hasCatch</h2> <p><code>hasCatch&lt;boolean&gt;</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&lt;boolean&gt;</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>