導(dǎo)入Seajs庫(kù)
<script src="/site/script/sea.js"></script>
然后在它下面寫模塊的配置和入口。
// seajs 的簡(jiǎn)單配置
seajs.config({
base: "../sea-modules/",
alias: {
"jquery": "jquery/jquery/1.10.1/jquery.js"
}
});
// 加載入口模塊
seajs.use("../static/hello/src/main");
所有源碼都存放在 GitHub 上:seajs/examples,目錄結(jié)構(gòu)為:
examples/ |-- sea-modules 存放 seajs、jquery 等文件,這也是模塊的部署目錄 |-- static 存放各個(gè)項(xiàng)目的 js、css 文件 | |-- hello | |-- lucky | `-- todo `-- app 存放 html 等文件 |-- hello.html |-- lucky.html `-- todo.html
我們從 hello.html
入手,來(lái)瞧瞧使用 Sea.js 如何組織代碼。
在 hello.html
頁(yè)尾,通過(guò) script
引入 sea.js
后,有一段配置代碼:
// seajs 的簡(jiǎn)單配置seajs.config({ base: "../sea-modules/", alias: { "jquery": "jquery/jquery/1.10.1/jquery.js" }})// 加載入口模塊seajs.use("../static/hello/src/main")
sea.js
在下載完成后,會(huì)自動(dòng)加載入口模塊。頁(yè)面中的代碼就這么簡(jiǎn)單。
這個(gè)小游戲有兩個(gè)模塊 spinning.js
和 main.js
,遵循統(tǒng)一的寫法:
// 所有模塊都通過(guò) define 來(lái)定義define(function(require, exports, module) { // 通過(guò) require 引入依賴 var $ = require('jquery'); var Spinning = require('./spinning'); // 通過(guò) exports 對(duì)外提供接口 exports.doSomething = ... // 或者通過(guò) module.exports 提供整個(gè)接口 module.exports = ...});
上面就是 Sea.js 推薦的 CMD 模塊書(shū)寫格式。如果你有使用過(guò) Node.js,一切都很自然。
對(duì)于正式項(xiàng)目,在發(fā)布上線前,還需要對(duì)源碼進(jìn)行壓縮、合并等操作。
這可以通過(guò) spm 或 Grunt 等工具來(lái)實(shí)現(xiàn)。簡(jiǎn)明教程請(qǐng)參考:構(gòu)建工具
怎么樣,Sea.js 入門真的只需 5 分鐘吧:)
使用 Sea.js,可以規(guī)范模塊的書(shū)寫格式、能自動(dòng)處理模塊的依賴,還非常有助于代碼組織、開(kāi)發(fā)調(diào)試和性能優(yōu)化。Sea.js 期待能給你提供簡(jiǎn)單、極致的模塊化開(kāi)發(fā)體驗(yàn)。我相信,你會(huì)愛(ài)上她的。
若喜歡,可查看更多例子:seajs/examples
若已愛(ài)上,請(qǐng)繼續(xù)閱讀:使用文檔
<script>
標(biāo)簽加個(gè)id,可以快速訪問(wèn)到這個(gè)標(biāo)簽(我是在模塊合并時(shí)用到它的)seajs.use()
在.html頁(yè)面上寫js時(shí)如果有多個(gè)模塊依賴,需要使用暴露出來(lái)的接口就要讓參數(shù)與它一一對(duì)應(yīng)。
更多建議: