早有耳闻
模块化的优点,最近在使用的过程中才慢慢加深了感触,恩…确实方便,下面讲讲我遇到的坑,提一下,seajs是CMD规范
seajs约定的书写规范:
1 | var path='./test'; |
恩,没错,这样是错误的。require只能使用直接量,即:字符串常量
替换的方案:
1 | var moduleName='test'; |
同步加载多个模块
在改写项目的时候,有这样一个插件:

没错….要使用这个插件,必须加载这些模块:kendo.button.min.js、kendo.core.min.js、kendo.draganddrop.min.js、kendo.userevents.min.js、kendo.window.min.js。你又猜对了,这些模块间是有依赖关系的,原项目用的是requirejs,依赖如图:
改写如下:
1 | require.async('kendoCore',function(){ |
感觉好傻逼,有木有。。。谁有好点的方法请留言!
路径解析
seajs.user('path') : seajs 引用路径时默认给加后缀 js,除非路径有 ? 或者 尾部以 # 结束 或者载入的是 css 模块。它的与普通的路径解析略有不同:
seajs.use()一般用于载入入口模块,当只有一个入口模块时可以用data-main标签代替
- 相对路径: 以
.开头 - 绝对路径:以
/或http://cdn.com/js/a(这种类型)开头 - 顶级路径:不以
.或/开头的路径都是顶级路径,此时以Seajs设定的base路径来解析


