第一次用报了$=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文件。
分享到:
相关推荐
8. **文档阅读**:"seajs手册.docx"提供了详细的Seajs使用指南,包括基本概念、API介绍、配置选项、最佳实践等内容,是学习和掌握Seajs的重要参考资料。 9. **社区支持**:Seajs拥有活跃的开源社区,开发者可以在...
Seajs使用`seajs.use`方法来加载模块。例如,要加载一个名为`myModule`的模块,可以这样写: ```javascript seajs.use('myModule', function(myModule) { // 在这里使用myModule模块 }); ``` **四、模块定义** ...
例如,你可以使用`seajs.preload`来预先加载一些常用模块,或者使用`seajs.config`配置项来定义模块的加载策略。 在实际开发中,SeaJS 可以与构建工具(如Gulp、Webpack)配合使用,进行模块的打包和优化,进一步...
3. **模块加载策略**:Seajs 支持异步加载和延迟加载,可以根据需要动态加载模块,降低页面初次加载的压力。 4. **路径解析**:Seajs 提供了配置文件来管理模块路径,使得模块路径可以相对或绝对,方便构建和部署。...
3. **加载模块**:Seajs使用`seajs.use()`方法加载模块,同时可以指定回调函数处理加载后的模块: ```javascript seajs.use(['modA', 'modB'], function(A, B) { // 在这里使用modA和modB模块 A.doSomething(); ...
### Seajs 的基本使用 Seajs 的使用主要包括配置、模块定义和模块引用。在浏览器中,我们通常会通过 `<script>` 标签引入 seajs 的核心文件 `seajs.js`: ```html <script src="path/to/seajs.js"> ``` #### 配置...
三、Seajs使用方法 1. **配置(config)**:通过`seajs.config()`方法配置seajs,可以设置base路径、alias别名、paths路径映射、preload预加载模块等。 2. **加载模块(use)**:使用`seajs.use()`方法加载模块,...
在解析模块路径时,Seajs使用`path`工具,该工具集成了路径操作方法,如`resolve`和`normalize`,帮助将相对路径转换为绝对路径。此外,Seajs还实现了模块ID的解析,以便正确地定位模块文件。 模块执行时,Seajs会...
Seajs-2.2.3 是一个开源的 JavaScript 模块加载器,旨在为开发者提供简单、极致的模块化开发体验。它强调的是简洁、自然的代码书写和组织方式,使得项目管理和协同工作变得更加高效。Seajs 在JavaScript社区中扮演着...
Seajs使用`define`函数来定义模块,它接受三个参数:模块标识(id),依赖的模块(deps)和模块的实现(factory)。模块标识通常是相对或绝对路径,用于区分不同的模块;依赖的模块是一个数组,列出当前模块需要的...
4. **模块加载**:使用 `seajs.use` 方法可以加载指定模块,并执行回调函数。在回调函数中,可以访问到已加载的模块,进行依赖注入。 5. **模块路径解析**:Seajs 支持相对路径和绝对路径,可以通过 `id` 参数指定...
**SeaJS 和 RequireJS 是两种广泛使用的 JavaScript 模块加载器和依赖管理工具,它们的主要目的是解决 JavaScript 在浏览器端的异步加载和模块化问题。** **SeaJS** SeaJS 是一个轻量级的模块加载器,由中国淘宝...
本文将深入解析Seajs 2.2.0版本的源码,探讨其核心机制、设计理念以及如何使用它来组织和管理前端项目。 首先,Seajs的核心功能是解决JavaScript的异步加载问题,它允许开发者按照模块化的方式来编写代码,每个模块...
1. **模块标识符**:Seajs使用URI(统一资源标识符)作为模块标识,允许开发者通过URL路径来引用模块。例如,`seajs.use('path/to/module')`。 2. **模块加载**:Seajs的核心功能之一是动态加载模块。它通过异步...
"grunt-react-seajs"就是一个这样的工具,它是一个专门为前端开发者设计的Grunt插件,旨在帮助开发者将React组件转换为SeaJS模块,使得在不支持ES6模块语法的环境中也能顺利地使用React组件。下面我们将深入探讨这个...
2. **加载**:使用`seajs.use`或`seajs.require`来加载模块。`use`方法会加载指定的模块并执行回调函数,而`require`方法仅加载模块,不执行任何操作。 3. **解析**:SeaJS解析模块路径,根据配置的路径映射找到实际...
这样,该插件就可以在Seajs环境下通过`seajs.use`来加载并使用了。 ## jQuery插件转换为Seajs插件 jQuery插件转换为Seajs插件的关键在于将依赖的jQuery引入,并确保插件代码在jQuery加载完成后执行。使用`seajs.use...
通过使用Seajs,开发者可以将复杂的代码分解为独立的模块,每个模块都有自己的作用域,避免了全局变量污染,同时提高了代码的复用性和可维护性。 在Seajs项目中,"seajs-master"可能是主分支或者完整版的项目源码...
### seajs 使用文档 #### Sea.js简介 Sea.js 是一款专为前端开发设计的轻量级模块加载器,它遵循 CMD(Common Module Definition)模块定义规范。与 AMD(Asynchronous Module Definition)规范相比,CMD 规范更加...
通过使用seajs.use()方法,可以按需加载依赖,确保代码的按序执行。Sea.js还支持CMD(Common Module Definition)规范,使得代码更易于维护和扩展。 结合使用Knockout和Sea.js,可以构建出高效的前端应用。例如,你...