SeaJS是一個遵循CommonJS規範的JavaScript模塊加載框架,能夠實現JavaScript的模塊化開發及加載機制。與jQuery等 JavaScript框架不一樣,SeaJS不會擴展封裝語言特性,而只是實現JavaScript的模塊化及按模塊加載。SeaJS的主要目的是令 JavaScript開發模塊化並能夠輕鬆愉悅進行加載,將前端工程師從繁重的JavaScript文件及對象依賴處理中解放出來,能夠專一於代碼自己的 邏輯。SeaJS能夠與jQuery這類框架完美集成。使用SeaJS能夠提升JavaScript代碼的可讀性和清晰度,解決目前JavaScript 編程中廣泛存在的依賴關係混亂和代碼糾纏等問題,方便代碼的編寫和維護。css
更多介紹請參考官方主頁:http://seajs.org/docs/。html
E:\WORKSPACES\MYECLIPSE10\FRONTPROJECTEXAMPLE\WEBROOT前端 |
|
│ build.batjava |
自動打包壓縮的執行文件node |
│jquery |
|
├─htmlgit |
存放前端展現頁面github |
│ └─testweb |
|
│ css.htmlnpm |
|
│ test1.html |
|
│ |
|
├─js |
javascrpt 文件 |
│ │ cmd.bat |
|
│ │ seajs-config.js |
seajs配置文件 |
│ │ update.bat |
更新seajs庫的可執行文件 |
│ │ update.rd |
|
│ │ |
|
│ ├─apps |
項目腳本文件 |
│ │ │ package.json |
npm打包文件 |
│ │ │ |
|
│ │ ├─base |
基礎公用的類方法 |
│ │ │ do.js |
|
│ │ │ in.js |
|
│ │ │ lab.js |
|
│ │ │ |
業務目錄 |
│ │ └─test |
|
│ │ 1.css |
|
│ │ css.js |
|
│ │ |
|
│ ├─otherlib |
第三方腳本庫 |
│ │ │ |
|
│ │ └─jquery |
|
│ │ ├─jquery |
|
│ │ │ jquery-1.10.2.js |
|
│ │ │ jquery-1.10.2.min.js |
|
│ │ │ |
|
│ │ └─jquery-easyui-1.3.4 |
|
│ │ |
|
│ └─sea-modules |
seajs庫 |
│ ├─apps |
打包後的業務目錄文件 |
│ │ |
|
│ ├─gallery |
自帶的經常使用庫 |
│ │ ├─handlebars |
|
│ │ │ └─1.0.2 |
|
│ │ │ handlebars-debug.js |
|
│ │ │ handlebars.js |
|
│ │ │ package.json |
|
│ │ │ runtime-debug.js |
|
│ │ │ runtime.js |
|
│ │ │ |
|
│ │ └─underscore |
|
│ │ └─1.4.4 |
|
│ │ package.json |
|
│ │ underscore-debug.js |
|
│ │ underscore.js |
|
│ │ |
|
│ ├─jquery |
|
│ │ └─jquery |
|
│ │ └─1.10.1 |
|
│ │ jquery-debug.js |
|
│ │ jquery.js |
|
│ │ package.json |
|
│ │ |
|
│ └─seajs |
seajs核心庫 |
│ ├─seajs |
|
│ │ └─2.1.1 |
|
│ │ package.json |
|
│ │ sea-debug.js |
|
│ │ sea.js |
|
│ │ sea.js.map |
|
│ │ |
|
│ ├─seajs-style |
樣式插件 |
│ │ └─1.0.2 |
|
│ │ package.json |
|
│ │ seajs-style-debug.js |
|
│ │ seajs-style.js |
|
│ │ |
|
│ └─seajs-text |
模版插件 |
│ └─1.0.3 |
|
│ package.json |
|
│ seajs-text-debug.js |
|
│ seajs-text.js |
|
│ |
|
├─META-INF |
|
│ MANIFEST.MF |
|
│ |
|
└─WEB-INF |
|
│ web.xml |
|
│ |
|
├─classes |
|
└─lib |
參照CMD規範。http://seajs.org/docs/#docs 文檔的模塊編寫規範。
結構 |
規則 |
例如 |
類 |
駝峯式 |
ModuleClass() |
公有方法 |
混合式 |
getPosition() |
公有變量 |
混合式 |
frameStyle |
常量 |
大寫式 |
DEFAULT_FRAME_LAYOUT |
結構 |
規則 |
私有方法 |
混合,例子:mixedCase |
私有變量 |
混合,例子:mixedCase |
方法(method)參數 |
混合,例子:mixedCase, mixedCase |
本地(local)變量 |
混合,例子:mixedCase, mixedCase |
while(!isDone){
doSomething();
isDone = moreToDo();
}
if(someCondition){
statements;
}elseif(someOtherCondition){
statements;
}else{
statements;
}
for(initialization; condition; update){
statements;
}
while(!isDone){
doSomething();
isDone = moreToDo();
}
do{
statements;
}while(condition);
switch(condition){
case ABC:
statements;
// fallthrough
case DEF:
statements;
break;
default:
statements;
break;
}
try{
statements;
}catch(ex){
statements;
}finally{
statements;
}
if(condition){ statement;}
while(condition){ statement;}
for(intialization; condition; update){ statement;}
具體的文檔示例能夠參考 https://github.com/senchalabs/jsduck/wiki
範例:@cfg {String} fieldName配置項的描述。
範例:@return {Number} 文字描述
範例:@param {Number/String} fieldName
範例:@param {String[]} fieldName
範例: /**
* @cfg {Object} opt
* @cfg {Number} [opt.age]
* @cfg {Number} [opt.name=0]
*/
該示例項目SVN : http://192.168.1.101:801/svn/998597/FrontProjectExample
第一步:安裝文件下載
第二步:執行安裝
$ npm install spm -g
$ npm install spm-chaos-build -g
關於 spm 和 spm-chaos-build的詳細介紹能夠參考
https://github.com/edokeh/spm-chaos-build
第三步:建立業務模塊
3.1:建立js文件
在js/apps/test/目錄下建立module1.js內容爲:
3.2:建立html文件
在html/test/目錄下建立module1.html內容爲:
注意紅色框的修改(與js文件名和目錄一致)。
預覽效果:
此時要保證seajs-config.js的production配置屬性爲flase,以下圖:
3.3:修改package.json
修改js/apps目錄下的package.json,修改以下紅色框中的信息。
第四步:構建打包項目
雙擊根目錄下的build.bat,可完成自動打包。
查看seajs-config.js文件
自動生成seajs的map
預覽效果以下:
請注意二者之間的區別。
管理開發和打包的有效的管理規範。
相信看完下面兩篇文章,能夠了解Require爲何是異步加載的了,若是你須要依賴加載的文件加載器,請選擇In.js: http://project.benben.cc/In/。
https://github.com/seajs/seajs/issues/259
https://github.com/seajs/seajs/issues/260
https://github.com/seajs/seajs/issues/242
強烈建議使用In.js 在seajs.use以前把須要的JS庫加載進來,使用In.js主要有兩個緣由
不建議使用庫中自帶的。Require模塊進行加載 在模塊中使用(do,labjs, in)進行加載,緣由:
https://github.com/seajs/seajs/issues/993
前文已經演示過,使用 pm-chaos-build 進行打包的過程,詳細請看:
https://github.com/senchalabs/jsduck
這是一個能夠把你的代碼翻譯成.Extjs 文檔的好工具,可是前提要按照規則寫代碼。代碼規則
http://llying.iteye.com/blog/258605
來自: http://cxc3214.blog.163.com/blog/static/23812806201310145015273/