Closed bodyno closed 9 years ago
jello 支持的方式更牛逼一些,成套的静态资源管理的方法都有了。不需要用静态插件去做合并…
在 2015年5月19日,下午1:36,nobody notifications@github.com 写道:
jello是否支持fis-postpackager-simple, 我加了一个自动合并零散资源,但是没有用, 不知道是否支持?
— Reply to this email directly or view it on GitHub.
jello 支持的方式更牛逼一些,成套的静态资源管理的方法都有了。不需要用静态插件去做合并…
能否说下是什么方式?
同问
跑一个 demo 就知道了
jello release -p #打包
跑一个 demo 就知道了
这并不是一个好的解决办法! :-1: :-1: :-1:
好歹你要看看表象吧?那你觉着什么样子的表述是更好的?
好歹你要看看表象吧?那你觉着什么样子的表述是更好的?
看什么表象? 这样-p 打包并不能达到想要的效果 早就试过了 所以才来寻求更好的解决办法 :hand: :hand: :hand:
simple 只适用于纯前端项目,jello 的打包遵循的是这种理念。
https://github.com/fex-team/fis/issues/488#issuecomment-101989042
没法智能分析出最优解,所以需要自己手动配置。
@az8321550
是这样的,jello是为vm,jsp等后端模板的情况下提供的支持,其实后端模板有一个问题,就是无法完全去静态分析 script、 link 来做资源合并,因为有可能 src,href 的值是个变量。
其实想想都是为了引入资源到页面上,索性就想另外一种办法来做引入,比如
#require('./a.js');
甚至于
#require($uri)
$uri
是个变量
剩下的就是搞定合并这个事情了,上面已经说过了静态分析这时候已经不好使了;就如上面的 #require
其实是一个后端接口;我们可以比较轻松的来实现合并资源这个功能;
文件
/a.js
/b.js
/c.js
/pkg.js
引用资源
#require('./a.js')
#require('./b.js')
#require('./c.js')
当这段代码执行时,我们预期的执行结果是引入 pkg.js
。
怎么样实现这个事情呢,我们只需要有一张表记录这个映射关系就行;
{
"pkg.js": ["./a.js", "./b.js","./c.js"]
}
数据结构可随意按照需求做调整,比如 jello 里面的就相对复杂的多
当执行 #require('./a.js')
时,去看看在哪个包里就加载它,这时候自然是 pkg.js
了呗;最终吐给浏览器时把收集到的合并信息嵌入页面就可以了。
知道了整个加载合并资源的方法,但是我上面没有说 pkg.js
怎么来的,其实这个在 jello 中是通过用户给的配置;
fis.config.set('pack', {
'pkg.js': ['a.js', 'b.js', 'c.js']
});
这样合并这儿事情似乎就很 OK 了;
再结合 @2betop 给的这个链接,来解释如果你配置了两个合并包,包与包之间是不会有资源重复的,通俗点讲,假设你想每一个页面只打一个包,通用部分也合并到当前页面的包里,这个操作用这种方式是搞不定的;
还是没有回答问题啊。 直接设置 pack 打包这个肯定知道啦。 我想了解的是 fis-pure 方案里面的自动打包零散资源的功能,也就是fis-postpackager-simple插件, 在pure里面是好使的,jello里面无效,这个才是问题。
jello 不支持相关做法,如果想用,自己撸
好吧。谢谢解答。
你说的零碎资源是哪些?是说 js 和 css 片段吗?
如果是,那么 jello 里面对应的语法就是 #script()#end 和 #style() #end 请查看 http://oak.baidu.com/jello-demo/velocity/index
jello是否支持fis-postpackager-simple, 我加了一个自动合并零散资源,但是没有用, 不知道是否支持?