aralejs/aralejs.github.io

我想把arale的组件打包成一个文件,我的思路对么?

looping84 opened this issue · 10 comments

我的目录结构

sea-modules
   -----arale
       ----popup
       ----dialog

我在sea-module 下,新建一个cmd目录,比如mywidget,然后运行 spm init
会生成个目录结构,是不是要把 arale,放到 mywidget下的src中,再设置include为all才行?就是如下的目录结构:

sea-modules
 ----mywidget
   ----src
      ----arale目录的所有东西放到这里

这样再运行spm build

谢谢

不知道单独打包 arale 的目的是什么。

你可以在你的业务代码中依赖 arale,在构建你业务代码的时候配置 include:all,这样就会 arale 的代码也打包进去。

这样不就把业务代码跟 组件的都打包进去了?这样重复了啊,假设我有N个页面,每个页面都用到了dialog,tooltip,overlay,打包生成后,每个页面的业务代码中,都会含有这些通用的组件。
我只是想把这些通用的提取出来。

这个场景我们是异步加载的,不需要打包(这本来也是 seajs 的好处之一)。

请求有点多,我想把通用的合并后再异步,支付宝不就是这样么,只不过是在服务器端合的。

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,所以想在前端先合并些通用的。

那就比较麻烦,需要你们自己 concat 一下。

建议配置 nginx 的 combo,好处多多

直接用grunt的concat,把各个,组件下的xxx-debug.js 顺序合并就行?不用transport了吧? 我看debug里边的id啥的都生成了

对,install 下来的已经 transport 过的

那最后业务层的代码是这样,假设arale.js是合并后的

sea.use('arale',function(Validator,Overlay,Calendar,...//必须跟合并的时候一一对应起来,){
     new Validator
     new Calendar({..attributes..})

})

是这样么?还有其他方法吗?可以省略后边的一长串的。

和之前使用的方式一样

seajs.use(['arale/tip/1.1.4/atip'], function(Tip){

})

看来没问题了