第一次用报了$=null的错误。然后上网查了是jquery需要封装成CMD才能使用。于是就删掉jquery中的AMD支持,就OK了
之后又use了uploadifive这个jquery 插件,不论用use方式还是require方式,虽然能导入uploadifive,而且也没报错,但是不能用的。点upload按钮都没反应。初始化的js代码都执行了。(否则报错)。必须用传统的script标签导入才能使用。而且jquery mobile用use或require都是支持的。
因为这个原因,我只好用传统的script标签导入jquery和所有jquery插件。因为不能只有一个uploadifive用传统的,它依赖jquery,jquery也需要用传统的方式导入。因此所有jq插件都必须用传统方式了。
然后想将css也一起用use方式导入。这个应该没问题。但是,若js都用传统方式了,css也没必要再用use方式,直接用传统的link标签导入吧。
搞了一圈,只有自己写的js和css用seajs的CMD模块化导入。几次想放弃用seajs,但是既然这么多人用它肯定是有好处的。
不知道requirejs怎么样,由于jquery默认支持amd模块,不需要手动修改jquery。那jquery插件需要再修改吗?有空再研究下requirejs。而且我做的项目基本是所有js资源都要预加载的,应该更适合用requirejs。
记录:
1 可使用spm install jquery/jquery命令在当前目录下自动生成CMD模块化后的jquery。
存在问题:
1 想将css一起打包进main,导入了seajs-style,并在config配置了preload:["style"],但是sea.importStyle依然是null?
2 旧代码存在相互依赖。但是seajs2.1.1不支持相互依赖了。而node.js是支持的。seajs会自动停止,不执行了。
解决方案:采用中间件解耦。参考资料
http://leyteris.iteye.com/blog/1159307
3 src中的js文件引用了src外部的公共js,如何将这些共用的js也一起压缩打包?好像spm build只能压缩src目录下的js文件。
分享到:
相关推荐
例如,你可以使用`seajs.preload`来预先加载一些常用模块,或者使用`seajs.config`配置项来定义模块的加载策略。 在实际开发中,SeaJS 可以与构建工具(如Gulp、Webpack)配合使用,进行模块的打包和优化,进一步...
3. **模块加载策略**:Seajs 支持异步加载和延迟加载,可以根据需要动态加载模块,降低页面初次加载的压力。 4. **路径解析**:Seajs 提供了配置文件来管理模块路径,使得模块路径可以相对或绝对,方便构建和部署。...
Seajs支持异步加载模块,这使得文件按需加载成为可能,减少了页面初次加载时的等待时间。同时,由于模块加载是异步的,因此我们需要确保模块的执行顺序,通常通过依赖注入来实现。 5. **模块化的好处**: 使用...
3. 使用seajs.use方法来加载和使用模块。 示例代码如下: ```html <script src="../js/examples-master/sea-modules/seajs/seajs/2.1.1/sea.js"> // 配置js路径 seajs.config({ alias: { "jquery": "../...
但加载时机和执行方式有所不同:RequireJS会在模块加载完成后立即执行,而seajs则是等到实际需要模块的功能时才去加载和执行,这就可能导致初次加载时seajs的效率更高,但在使用过程中可能会出现卡顿。在选择...
本文主要探讨了如何使用headjs这个轻量级的JavaScript库来实现动态管理和异步加载JavaScript文件,以解决对于小型项目中可能过于复杂的模块加载器如requirejs和seajs的需求。 首先,了解JavaScript的执行特性至关...