文档章节

spm作用及使用

bigYuan
 bigYuan
发布于 2014/11/01 16:11
字数 488
阅读 51
收藏 1

虽然说,我们需要的弹框效果已经实现了,但是,却是不能直接上线使用的,为何?

我们看下其http请求,如下截图:
http请求们 张鑫旭-鑫空间-鑫生活

哎呀呀,这么多JS请求,吓着乌索普脆弱的小心脏了。虽然,seajs模块化的书写提高了维护性,但是,也带来了前端性能的问题!如何解决?

现在,就是救世主spm出场的时候了,spm → seajs package manage?

spm可以合并并压缩seajs中的各个模块JS文件。还是上面的弹框demo页面,我们在地址后面增加”?spm=1“,如下图所示,访问之
spm下seajs模块合并并压缩后的demo页面 张鑫旭-鑫空间-鑫生活

再次刷新页面,查看HTTP请求数,额哈哈,原本6个JS请求,现在合并成1个啦:
只有一个JS相关的HTTP请求截图 张鑫旭-鑫空间-鑫生活

命令行中如下代码即实现效果:

spm build main.js --combine --app_url zxx

然后,main.js中所用到的相对路径require的所有模块就会合并并压缩,新生成的文件(如果没有指定输出路径)会是__build/main.js
smp合并并压缩main.js命令行中运行 张鑫旭-鑫空间-鑫生活

spm的安装与使用
spm安装与使用github上有介绍。大致如下:

安装
先安装node和npm, http://nodejs.org/#download;然后安装spm, 如下命令行代码:

$ npm install spm -g

smp的安装进度示意图 张鑫旭-鑫空间-鑫生活

build[option]模块
压缩一个JS模块:

$ spm build a.js

压缩并合并:

$ spm build a.js --combine

压缩并合并所有独立模块(包括绝对路径的):

$ spm build a.js --combine_all

清除创建的文件:

$ spm build --clear

通过定义build-config.js可以做更多的事情:
build-config.js:

module.exports = {
  "base_path": "/path/to/libs/",
  "app_url": "http://test.com/js/app/",
  "app_path": "/path/to/app/",
  "loader_config": "path/to/init.js"
};

更多信息,可以调用:

$ spm help build

以上为我觉得常用的。这里推荐一篇关于smp使用的文章:seajs的spm使用摸索。这篇文章对spm各个参数都有解释,另外,还提供了自定义输出路径等参数的使用示例。可以说是对github上使用的很好补充。

© 著作权归作者所有

上一篇: seajs压缩合并
下一篇: 安装node和spm过程
bigYuan
粉丝 17
博文 135
码字总数 43172
作品 0
大连
程序员
私信 提问
问下,网站主域名后缀是什么意思?

http://mm.taobao.com/?spm=719.10010367.1998089564.4.d0fwqU spm后缀的意思是? 有什么作用

本周网
2014/11/10
436
6
NO.6 使用这些来帮助我们更高效率的运维

Hello,大家好,这是第六期 上云用户必看期刊,本期我们主打高效率的运维和一些常用技术做分享。 首先是提高运维效率的一些好文 通过Web界面在多台服务器上批量创建文件https://yq.aliyun.c...

我的中国
2018/05/05
0
0
淘宝url中的spm编码是怎么生成的?

http://qinglv.taobao.com/?spm=1.7274553.1997517385.d3.QrsPhQ 淘宝url中的spm编码是怎么生成的?生成使用了什么技术? 越详细越好。 下面是SPM淘宝说明: SPM是淘宝社区电商业务(xTao)为...

作业本789
2014/11/27
3.7K
1
NO.10 阿里云ACP考试攻略+企业安全容灾备份确保数据可靠性+自动化运维

这是第十个专题,随着阿里云的发展越来越多的人去考阿里云ACP认证,这月我们就给您推荐一些相关攻略和使用技能吧。 自从国家出台《安全法》对厂家、企业等网络安全性提出了要求,我们不仅要让...

我的中国
2018/09/08
0
0
【答疑】对象存储OSS常见问题解答(SDK类2)

1.客户在使用OSS java SDK 上传时发现卡死。 解答:原因是连接池中连接泄漏,可能是使用ossObject后没有关闭。 云栖社区里有一篇文章详细介绍了这个问题: https://yq.aliyun.com/articles/6...

yangwanyuan
03/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Jenkins系列_插件安装及报错处理

进入Jenkins之后我们可以进行插件的安装,插件管理位于以下模块: 发现上面报了一堆错误,是因为插件的依赖没有安装好,那么这一节,就先把这些错误解决掉吧。解决完成后,也就基本会使用插件...

shzwork
今天
2
0
mysql mysql的所有查询语句和聚合函数(整理一下,忘记了可以随时看看)

查询所有字段 select * from 表名; 查询自定字段 select 字段名 from 表名; 查询指定数据 select * from 表名 where 条件; 带关键字IN的查询 select * from 表名 where 条件 [not] in(元素...

edison_kwok
昨天
9
0
解决多线程并行加载缓存问题(利用guava实现)

依赖 com.google.guava:guava:20.0 import com.google.common.cache.Cache;import com.google.common.cache.CacheBuilder;import java.util.concurrent.ExecutionException;import j......

暗中观察
昨天
3
0
利用VisualVM 内存查看

准备工作,建几个测试类。等下就是要查看这几个类里面的属性 package visualvm;public class MultiObject { private String str; private int i; MultiObject(String str...

冷基
昨天
3
0
组装一台工作游戏两用机

一、配置清单如下: 分类 项目 价格(元) 主板 华硕(ASUS)TUF Z370-PLUS GAMING II 电竞特工 Z370二代 支持9代CPU 1049 CPU 英特尔(Intel) i7 8700K 酷睿六核 盒装CPU处理器 2640 风扇 九...

mbzhong
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部