`
wfsheep
  • 浏览: 17222 次
文章分类
社区版块
存档分类
最新评论

seajs使用小结(三)

 
阅读更多

上回书说到,当老系统中设置过seajs.config中的paths,而后续新增代码受到了paths的影响时怎么办呢?

比如如下代码:

        seajs.config({
            paths: {
                'js': 'xxxxxxx/xxxxx'
            },
            alias: {
                'a': 'js/a.js'
            }
        });

        seajs.use('a');


这样a模块的js引入路径就变成了xxxxxxx/xxxxx/js/a.js。那么在不改动原有paths的情况下,我们如何按照想要的路径加载a代码呢?

可以使用'/js/a.js'来进行加载,因为paths对alias的解析代码是不会为最前端有‘/’的路径进行配置的。

这里就有必要看一看seajs是怎么处理路径的了,处理URI路径的代码如下,

function id2Uri(id, refUri) {
  if (!id) return ""

  id = parseAlias(id)
  id = parsePaths(id)
  id = parseAlias(id)
  id = parseVars(id)
  id = parseAlias(id)
  id = normalize(id)
  id = parseAlias(id)

  var uri = addBase(id, refUri)
  uri = parseAlias(uri)
  uri = parseMap(uri)

  return uri
}
可以看到这里会先解析alias,然后使用paths对alias进行拼装,再使用vars对alias进行处理,最后为uri进行base处理。

具体处理过程,这里就不赘述了,各位看官可以去参看一下seajs的源码。


分享到:
评论

相关推荐

    seajs官方小实例

    **Seajs 官方小实例详解** Seajs 是一个用于浏览器端的模块加载器,它遵循 CommonJS 规范,让 JavaScript 开发者能够在浏览器环境中实现模块化开发,提高代码的可维护性和复用性。Seajs 的核心理念是通过模块化解决...

    seajs手册,教程

    本手册将详细阐述Seajs的核心概念、使用方法以及如何通过它来构建高效的前端应用。 1. **模块化编程**:Seajs基于CommonJS规范,引入了模块化编程的概念,允许开发者将复杂的JavaScript代码拆分为可重用的模块,...

    seajs入门小实例

    Seajs 是一个轻量级的前端模块加载器,它的出现是...不过随着Webpack、Rollup等现代构建工具的普及,Seajs 在大型复杂项目中的使用逐渐减少,但在理解和学习前端模块化思想的过程中,Seajs 仍是一个值得学习的案例。

    seajs-5分钟上手

    本教程将带你快速了解并掌握Seajs的使用,让你在5分钟内对这个强大的工具有一个基本的认识。 **一、Seajs的基本概念** Seajs的核心理念是模块化,它允许我们将JavaScript代码分割成多个独立的模块,每个模块都有...

    seajs js 模块加载器

    例如,你可以使用`seajs.preload`来预先加载一些常用模块,或者使用`seajs.config`配置项来定义模块的加载策略。 在实际开发中,SeaJS 可以与构建工具(如Gulp、Webpack)配合使用,进行模块的打包和优化,进一步...

    seajs下载以及规范

    要在项目中使用Seajs,首先需要从官方网站或者其他可靠的源获取最新版本的Seajs文件。下载完成后,将`seajs`文件放置在项目的公共目录下,通常是`js`或`lib`目录。确保这个位置能让所有需要使用Seajs的页面都能访问...

    seajs-2.3.0.zip

    三、Seajs使用方法 1. **配置(config)**:通过`seajs.config()`方法配置seajs,可以设置base路径、alias别名、paths路径映射、preload预加载模块等。 2. **加载模块(use)**:使用`seajs.use()`方法加载模块,...

    seajs_2.3.0以及学习文档

    1. **Seajs 使用指南**:详细讲解如何安装、配置和使用 Seajs,包括如何定义和引用模块,以及如何配置路径和插件。 2. **API 参考**:列出 `seajs.use`、`seajs.config`、`seajs.data` 等核心 API 的使用方法和参数...

    seajs-2.2.3

    模块内部,我们可以使用 `define` 函数来定义模块,它接受三个参数:模块标识(可选)、依赖的模块(可选)和模块的实现(函数或对象): ```javascript define('module-name', ['dependency1', 'dependency2'], ...

    seajs源码阅读

    同时,它使用`define`函数来定义模块,这个函数接收三个参数:模块ID、依赖列表和回调函数,回调函数的返回值被视为模块的出口。 阅读Seajs源码有助于提升对JavaScript模块化和异步加载的理解。通过分析其核心功能...

    CMD规范之seajs

    Seajs使用`define`函数来定义模块,它接受三个参数:模块标识(id),依赖的模块(deps)和模块的实现(factory)。模块标识通常是相对或绝对路径,用于区分不同的模块;依赖的模块是一个数组,列出当前模块需要的...

    seajs入门完整案例,适合新手学习

    4. **模块加载**:使用 `seajs.use` 方法可以加载指定模块,并执行回调函数。在回调函数中,可以访问到已加载的模块,进行依赖注入。 5. **模块路径解析**:Seajs 支持相对路径和绝对路径,可以通过 `id` 参数指定...

    SeaJS与RequireJS区别

    SeaJS 虽然在中国有一定影响力,但整体社区规模较小。 4. **API 设计**:SeaJS 的 API 设计较为简洁,而 RequireJS 的 API 功能更强大,但可能对新手来说稍显复杂。 5. **使用场景**:SeaJS 适合追求简洁和易用性...

    seajs-2.2.0源码

    本文将深入解析Seajs 2.2.0版本的源码,探讨其核心机制、设计理念以及如何使用它来组织和管理前端项目。 首先,Seajs的核心功能是解决JavaScript的异步加载问题,它允许开发者按照模块化的方式来编写代码,每个模块...

    seajs相关模板

    这样,该插件就可以在Seajs环境下通过`seajs.use`来加载并使用了。 ## jQuery插件转换为Seajs插件 jQuery插件转换为Seajs插件的关键在于将依赖的jQuery引入,并确保插件代码在jQuery加载完成后执行。使用`seajs.use...

    seaJS框架简介和完整例子

    2. **加载**:使用`seajs.use`或`seajs.require`来加载模块。`use`方法会加载指定的模块并执行回调函数,而`require`方法仅加载模块,不执行任何操作。 3. **解析**:SeaJS解析模块路径,根据配置的路径映射找到实际...

    seajs源代码

    1. **模块标识符**:Seajs使用URI(统一资源标识符)作为模块标识,允许开发者通过URL路径来引用模块。例如,`seajs.use('path/to/module')`。 2. **模块加载**:Seajs的核心功能之一是动态加载模块。它通过异步...

    前端开源库-grunt-react-seajs

    "grunt-react-seajs"就是一个这样的工具,它是一个专门为前端开发者设计的Grunt插件,旨在帮助开发者将React组件转换为SeaJS模块,使得在不支持ES6模块语法的环境中也能顺利地使用React组件。下面我们将深入探讨这个...

    前端项目-seajs.zip

    通过使用Seajs,开发者可以将复杂的代码分解为独立的模块,每个模块都有自己的作用域,避免了全局变量污染,同时提高了代码的复用性和可维护性。 在Seajs项目中,"seajs-master"可能是主分支或者完整版的项目源码...

    knockout seajs .net中实战应用

    通过使用seajs.use()方法,可以按需加载依赖,确保代码的按序执行。Sea.js还支持CMD(Common Module Definition)规范,使得代码更易于维护和扩展。 结合使用Knockout和Sea.js,可以构建出高效的前端应用。例如,你...

Global site tag (gtag.js) - Google Analytics