seajs中模块的解析规则详解和模块使用总结

  次阅读 来源:互联网(转载协议) 2016-01-27 15:14 我要评论(0)

这篇文章主要介绍了seajs中模块的解析规则详解和模块使用总结,需要的朋友可以参考下

seajs github 模块标识已经说的相对清楚了。但并没有面面俱到,特别是当你需要手写 【模块ID】和【模块依赖】的时候,或者自己写自动化工具来做 transport 的时候(ps:spm貌似适应性不是很强也不易用,毕竟每个项目的目录结构可能相差很大,且不易改变。当然如果他的定位是包管理工具就别指望它来做你的项目的自动化构建工具了),ID的解析规则就需要了解透彻了。

注意事项:

1. 顶级标识始终相对 base 基础路径解析。

2. 绝对路径和根路径始终相对当前页面解析。

3. require 和 require.async 中的相对路径相对当前模块路径来解析。

4. seajs.use 中的相对路径始终相对当前页面来解析。

seajs中,模块的ID大致可分为三种:【相对标识】、【顶级标识】、【普通路径】,

普通路径包括绝对路径 、 根路径 ,等。

这里重点说明 【相对标识】 和 【顶级标识】。

相对标识 是指 "./","../" 开头的,如:"./OtherModule", "../lib/Base"。

顶级标识 是指 以文件或目录(可以包含:字母、-、_)开头的,如:"app/widget/Select"

需要写模块ID的地方有三处:

代码如下:define("id (1)",["../id2 (2)"], function(require, exports, module){

var moduleA = require('./moduleA (3)');

})

注意:无论是define第一个参数【模块ID】还是第二个参数【依赖模块的ID】还是【require模块ID】,最终的比对标准是【解析后的文件URI】。

因此,这三处需要写ID 的地方可以以任意一种方式来写,只要最终解析为同一个URI,即被认为是同一个模块。

在解析ID的过程中,会预先经过 seajs.config 中定义的 alias 和 paths 的处理。

base 路径解析规则

(第 1 层,本身的路径不依赖于任何设置)

1. 不可使用【顶级标识】,因为顶级标识就是相对于 base 基础路径来解析的,因此 base 本身只能使用【相对标识】或【根路径】等。

2. base 默认路径为 seajs 的目录,其他情况参见seajs官网,如果不是seajs推荐的源码目录结构,尽量手动设置 base 路径。

3. 【相对标识】:相对于 当前页面 解析。

paths 中路径解析规则

(第 1 层,本身的路径不依赖于任何设置)

1. 【相对标识】:在哪里被引用,相对的解析位置视被引用的地方而定,遵循当地的规则。

2. paths中的字段会被以变量的方式在被使用的地方替换,然后再解析。

比如:

代码如下://代码块(1)

//path定义:

seajs.config({

base:"./app/src",

path:{

"a":"../lib", //(1) 相对路径

"lib":"path/to/lib", //(2) 顶级标识

"l2":"/lib" //(3) 根路径

}

});

//模块 mod/m/m.js:

...

require("a/jquery");

//=> 转换为:"../../lib/jquery"

//=> 加载:mod/lib/jquery (特别注意 1)

...

//模块 mod/f.js:

...

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...