spm
已经支持了局部压缩,假设 a -> b -> c -> d
spm build c.js
则仅仅会合并c和d,而spm
还提供有同步和异步两种方案进行require
。
仔细想了下,鉴于你的需求,我比较倾向于这样处理:
a 里面 require('b')
b 里面 require.async('c')
c 里面 require('d')
这样spm build
的时候可以分开两步:
spm build a.js
spm build c.js
这样可以打包为两个文件,因为这种局部打包其实说到最后还是怎么界定优化策略的问题,spm
无法做得太多(或许还是不够聪明),但是因为seajs利用正则把require
变成异步的方案仅推荐在开发的时候用,正式上线的时候还是区分开异步(require.async)和同步比较好。
我顺手做了个DEMO,https://gist.github.com/2583839 不知道这样做能否解决你的问题?