fmd.js
Version:
another module writing system
86 lines (84 loc) • 4.39 kB
HTML
<html>
<head>
<meta charset="utf-8"/>
<title>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="fmd-js">fmd.js</h1>
<p><strong>fmd</strong>是<strong>Formatting Module Definition</strong>的首字母缩写,中文意思是格式化模块定义,很明显,这套用了著名的Async Module Definition的说法。顾名思义,fmd.js的重点在于fotmatting,而非async,或其他</p>
<p>fmd.js所提供的模块管理是针对<strong>语言层</strong>而言的,是一种<strong>语法机制</strong>,而非文件层的。所以,尽管fmd.js也提供了异步加载文件的功能,但并不定位是模块加载器,更不是文件加载器</p>
<p>fmd.js认为模块化是代码之本,一切代码均在模块中,一切皆模块,而定义模块的途径最好有且只有一种。故,在fmd.js,只有<strong>define</strong>这一途径来定义模块</p>
<p>经fmd.js所定义的模块根据id的有无分别称为具名模块和匿名模块,具名模块很容易通过其id被其他模块引用,而匿名模块像匿名函数一样无法被其他模块引用,所以,匿名模块一经定义将立即执行其工厂函数</p>
<p>fmd.js基本兼容AMD规范</p>
<h2 id="downloads">Downloads</h2>
<p>fmd.js本身由数个模块所组成,可以自由组装成需要的fmd.js</p>
<p>这里只提供默认组合以供下载:</p>
<ul>
<li><a href="/dist/fmd.js">Development Version</a></li>
<li><a href="/dist/fmd.min.js">Production Version</a></li>
</ul>
<p>插件相关的支持请参见<a href="/docs/plugins.html">Plugins</a>。更多代码请参见<a href="https://github.com/fmdjs/fmdjs">github仓库</a></p>
<p>或者:</p>
<ul>
<li>npm install fmd.js</li>
<li>bower install fmd.js</li>
</ul>
<p>进行下载</p>
</article>
<script src="/dist/fmd.js"></script>
<script src="/assets/sh.js"></script>
</body>
</html>