工作中用seajs一段时间了,小小地总结一下。

使用seajs五部曲:

    1.布置你项目的目录结构

    2.设置seajs的config项,我一般是单独一个js文件--> seajs-config.js,  主要是重置一下base路径,一般比较少用paths,而用alias比较多,因为项目上线前直接把alias这些配置给grunt直接构建提取模块id  

 /**
* 配置项目
*
*/
seajs.config({
"base": "/js",
"paths": {
"seajs": "sea-modules/seajs"
},
"alias": {
"jquery": "sea-modules/library/jquery/1.11.1/jquery.js",
"bindonce": "sea-modules/library/angular/1.2.20/bindonce.js",
"handlebars": "sea-modules/library/handlebars/1.3.0/handlebars.js",
"mustache": "sea-modules/library/mustache/0.8.1/mustache.js",
"angular": "sea-modules/library/angular/1.3.0-beta.15/angular.min.js",
"iscroll5": "sea-modules/library/iscroll/iscroll.js",
"cart": "sea-modules/custom/cart/1.1.0/cart.js",
"favorite": "sea-modules/custom/favorite/0.1.0/favorite.js",
"cookies": "sea-modules/custom/cookies/0.1.0/cookies.js",
"globalloading": "",
"tipslayer": "sea-modules/custom/tipslayer/0.1.0/tipslayer.js",
"verify": "sea-modules/custom/verify/0.1.0/verify.js",
"slider": "sea-modules/custom/slider/0.2.0/slider.js",
"tips": "sea-modules/custom/tips/1.2.0/tips.js",
"share": "sea-modules/custom/share/0.2.0/share.js",
"lazyload": "sea-modules/custom/lazyload/0.1.0/lazyload.js",
"emoji": "sea-modules/custom/emotion/zepto_emoji.js",
"iscroll": "sea-modules/custom/iscroll/4.2.5/iscroll.js",
"dialog": "sea-modules/custom/dialog/1.1.1/dialog.js",
"pageloader": "sea-modules/custom/pageloader/0.1.0/pageloader.js",
"loading": "sea-modules/custom/loading/0.1.0/loading.js",
"report": "sea-modules/custom/report/report.js",
"imgbrowse": "sea-modules/custom/imgbrowse/0.1.0/imgbrowse.js",
},
"map": [
// [".js", ".js?v2"]
],
"debug": 2
});

    3.定义模块

define(function(require, exports, module) {

    data =  123;

    return data;                    //对外接口
//module.exports = data; //也可这样,对外接口
//exports.data = data; //也可这样,对外接口 });

    4.解决依赖 ,在定义模块时,如果依赖其它的文件,直接require一下

define(function(require, exports, module) {

    var $ = require('jqeury');

    //do something...

    data =  123;

    return data;                    //对外接口
//module.exports = data; //也可这样,对外接口
//exports.data = data; //也可这样,对外接口 });

    5.调用模块, 在html文件用seajs.use来调一下主文件

<script type="text/javascript">
seajs.use('web/feedback_chat.js');
</script>

实际工作中一般都是在重复这几步,第一个项目的目录的目录结构定下来就不变了, config文件中base一般是不变的了,就是不断的加alias, 然后定义模块,  在模块里require解决依赖,  最后在html文件里 seajs.use调用。

然后再把seajs的路径问题解决基本就OK了-->  这是seajs官网的解释 https://github.com/seajs/seajs/issues/258

之前也小小写了下总结,有点乱没时间整理,也发上来吧--> http://www.cnblogs.com/Ivangel/p/4304811.html

最后就是在项目上线之前用grunt构建一下。这是我写的一个小demo-->  https://github.com/ivan403704409/seajs-transport-demo

工作中使用seajs后的一些总结的更多相关文章

  1. 修复在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”这篇博客中MyScrollView出现滑动一会就不会上下滑动的问题

    在“Android 在ScrollView中嵌入ViewPage后ViewPage不能很好的工作的问题解决”,这篇博客中的大部分问题已经解决了. 唯一遗憾的是,ViewPage随人能够工作了,但是My ...

  2. 工作中那些提高你效率的神器(第二篇)_Listary

    引言 无论是工作还是科研,我们都希望工作既快又好,然而大多数时候却迷失在繁杂的重复劳动中,久久无法摆脱繁杂的事情. 你是不是曾有这样一种想法:如果我有哆啦A梦的口袋,只要拿出神奇道具就可解当下棘手的问 ...

  3. C# 工作中遇到的几个问题

    C#  工作中遇到的几个问题 1.将VS2010中的代码编辑器的默认字体“新宋体”改为“微软雅黑”后,代码的注释,很难对齐,特别是用SandCastle Help File Builder生成帮助文档 ...

  4. [工作中的设计模式]责任链模式chain

    一.模式解析 责任链模式是一种对象的行为模式.在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链.请求在这个链上传递,直到链上的某一个对象决定处理此请求.发出这个请求的客户端并不知 ...

  5. 总结工作中常见的linux命令

    本文是总结下自己在工作中遇到的常见linux 命令,会持续更新! 1.文件路径切换 进入 cd 返回上一级  cd .. 2.复制 cp 源文件名 目标文件夹 cp log.log test5 3.编 ...

  6. 工作中常用的Linux命令:find命令

    本文链接:http://www.cnblogs.com/MartinChentf/p/6056571.html (转载请注明出处) 1.命令格式 find [-H] [-L] [-P] [-D deb ...

  7. [工作中的设计模式]原型模式prototype

    一.模式解析 提起prototype,最近看多了js相关的内容,第一印象首先是js的原型 var Person=function(name){ this.name=name; } Person.pro ...

  8. [工作中的设计模式]策略模式stategy

    一.模式解析 策略模式定义了一系列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变化. 策略模式的关键点为: 1.多种算法存在 2.算法继承同样的接口 ...

  9. 运维工作中sed常规操作命令梳理

    sed是一个流编辑器(stream editor),一个非交互式的行编辑器.它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间",接着用sed命令处理缓冲 ...

随机推荐

  1. linux学习方法之一

    相信不少想学习linux的新手们正愁不知道看什么linux学习教程好,下面小编给大家收集和整理了几点比较重要的教程,供大家学习,如需想学习更多的话,可到wdlinux学堂寻找更多教程. 1.什么是RP ...

  2. 从Go、Swift出发:语言的选择需谨慎

    本文转自 : http://www.csdn.net/article/2014-12-09/2823025 摘要:无论是开源的Go,还是闭源的Swift,新的语言总是利弊一体.不过可以确定的是,新的语 ...

  3. java poi 合并单元格后边框问题

    在项目中用poi合并单元格,但发现边框会有不显示的问题. 在网上搜集了答案,来记录一下. 解决方法: 将每个没用到的单元格都设空值. 例如: HSSFCell cell = row.createCel ...

  4. PHP怎么实现网站中,同一个用户不能同时在线?

    先上图,看个大概: 一般的原则就是,后一个用户登录时会把前一个用户踢下线. 在用户首次登录时,我们会把用户的sessionid保存到数据库,这个是用户的唯一标识.方便后边操作. 用户只有在登录时才会和 ...

  5. 一个简单的网页读字符串 SpeechLib

    //引用组件:Interop.SpeechLib.dll//导入空间:SpeechLib //引用组件:Interop.SpeechLib.dll//导入空间:SpeechLib 前面设置内容引用别人 ...

  6. ubuntu安装配置gradle

    在Ubuntu安装Gradle也是很简单.切记请勿使用apt-get安装Gradle.因为Ubuntu源的Gradle实在太旧.安装好基本不能用. 下面是安装步骤: 1.在官网下载最新的Gradle版 ...

  7. Qt学习(四)—实例涂鸦画板mspaint

    一.Qt图形绘制 自己在Qt开源社区在自学yafeilinux前辈的<Qt快速入门系列教程>中的图形篇,结合所学的知识,可以做一个涂鸦板实例 二.实现涂鸦板 1.新建工程mspaint, ...

  8. bzoj1654 [Usaco2006 Jan]The Cow Prom 奶牛舞会

    Description The N (2 <= N <= 10,000) cows are so excited: it's prom night! They are dressed in ...

  9. Sort Colors 解答

    Question Given an array with n objects colored red, white or blue, sort them so that objects of the ...

  10. LeeCode-Single Number II

    Given an array of integers, every element appears three times except for one. Find that single one. ...