我想把arale的组件打包成一个文件,我的思路对么?
looping84 opened this issue · 10 comments
looping84 commented
我的目录结构
sea-modules
-----arale
----popup
----dialog
我在sea-module 下,新建一个cmd目录,比如mywidget,然后运行 spm init
会生成个目录结构,是不是要把 arale,放到 mywidget下的src中,再设置include为all才行?就是如下的目录结构:
sea-modules
----mywidget
----src
----arale目录的所有东西放到这里
这样再运行spm build
谢谢
popomore commented
不知道单独打包 arale 的目的是什么。
你可以在你的业务代码中依赖 arale,在构建你业务代码的时候配置 include:all
,这样就会 arale 的代码也打包进去。
looping84 commented
这样不就把业务代码跟 组件的都打包进去了?这样重复了啊,假设我有N个页面,每个页面都用到了dialog,tooltip,overlay,打包生成后,每个页面的业务代码中,都会含有这些通用的组件。
我只是想把这些通用的提取出来。
popomore commented
这个场景我们是异步加载的,不需要打包(这本来也是 seajs 的好处之一)。
looping84 commented
请求有点多,我想把通用的合并后再异步,支付宝不就是这样么,只不过是在服务器端合的。
https://a.alipayobjects.com/??arale/tip/1.1.4/atip.js,arale/popup/1.1.2/popup.js,arale/overlay/1.1.2/overlay.js,arale/overlay/1.1.3/mask.js,arale/overlay/1.1.1/overlay.js,arale/dialog/1.2.1/dialog.js,arale/templatable/0.9.1/templatable.js,arale/switchable/0.9.15/tabs.js,arale/easing/1.0.0/easing.js,arale/autocomplete/1.2.2/autocomplete.js,alipay/xbox/1.1.1/xbox.js,alipay/object-shim/1.0.0/object-shim.js,alipay/storex/1.0.1/storex.js,alipay/request/0.9.1/request.js,alipay/combo/1.2.0/combo.js,gallery/store/1.3.7/store.js,gallery/underscore/1.4.4/underscore.js,gallery/moment/2.0.0/moment.js
我们没法配ngix,所以想在前端先合并些通用的。
popomore commented
那就比较麻烦,需要你们自己 concat 一下。
建议配置 nginx 的 combo,好处多多
looping84 commented
直接用grunt的concat,把各个,组件下的xxx-debug.js 顺序合并就行?不用transport了吧? 我看debug里边的id啥的都生成了
popomore commented
对,install 下来的已经 transport 过的
looping84 commented
那最后业务层的代码是这样,假设arale.js
是合并后的
sea.use('arale',function(Validator,Overlay,Calendar,...//必须跟合并的时候一一对应起来,){
new Validator
new Calendar({..attributes..})
})
是这样么?还有其他方法吗?可以省略后边的一长串的。
popomore commented
和之前使用的方式一样
seajs.use(['arale/tip/1.1.4/atip'], function(Tip){
})
popomore commented
看来没问题了