This repository has been archived by the owner on Aug 15, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 179
spm build 的全依赖逻辑 #820
Comments
不是打包全依赖么? |
见面再说。umi 赶紧发啊,感觉马上就有人要提 issue 了。 |
This was referenced Jun 11, 2014
Closed
seajs 减小体积的方案,可在顶楼的基础上减少更多的字符,require 中改成 deps 的索引
|
晓庆提了一个优化点,可以进一步减少文件大小:同一个 output 文件里 define 过的模块不添加到依赖里。 比如: define('a', ['b'], function(require) {
require('b');
});
define('b', function() {}); 因为 b 已经定义过了,所以 a 的 deps 里可以不声明 'b', + define('a', function(require) {
- define('a', ['b'], function(require) {
require('b');
});
define('b', function() {}); |
是啊,之前说的就是这个逻辑 |
这个逻辑好 |
-debug的文件下应该什么都有...从xxx-debug.js到xxx.js的时候, deps全部删掉, define的name也可以压缩成a,b,c. 最外层的名字不能压缩. 应该是这个逻辑了 |
-debug 文件应该也不需要当前文件已有的 deps, loader(seajs) 会处理的 |
我觉得-debug是最正规的写法(官方推荐写法), 依赖关系全部都有. xxx.js是给机器看的,能压缩的都压掉. |
基本完成了,等 spm 更新依赖 |
已经测试过了 |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
根据合并规则生成合并列表,生成依赖的时候去除合并列表中的信息,这样可以减少依赖内容。
原文
打包后的文件是:
这里 jquery 的依赖项重复了三次,c 重复了两次。在一些层级较多的模块(在无线的项目中发现的这个问题)中,这个问题会被成倍放大,导致依赖项占用的字节数远远多过源码。
当打包后几个 define 在同一个文件里时,其实模块 a 上的 c 和 jquery 都不是必须的,模块 b 上的 jquery 也不是必须的。可否有一个精简?
The text was updated successfully, but these errors were encountered: