[edp-build]关于ModuleCompiler后插件的顺序
otakustay opened this issue · 3 comments
otakustay commented
@leeight 我遇到这样的一情况:
我有些模块中依赖了tpl!xxx.tpl
,用ModuleCompiler
做打包,然后发现打包后的.js
中的模块顺序是:
// 204行
define('error/GenericError', [
'require',
'tpl!178c7118.tpl.html',
'./View',
'./Action',
'eoo'
]
// 1735行
define('tpl', [
'require',
'ub-ria/tpl',
'common/config'
], function (require) {
很奇怪的是,一个模块依赖一个插件,但插件的定义却在后面
遇到的问题在于:
- 模板的解析依赖于
tpl
插件上的一系列配置(各控件的命名空间) - 这些配置在N个模块中分布式进行,并没有集中在
tpl
插件的声明中(各业务模块管自己的控件) tpl
插件不是esl本身,没有delay factory的效果,下载模板后立即解析,此时各业务模块还没执行factory,对应的配置没加上- 出错了
我的感觉是,应该把插件也当作显式的依赖,放到前面去
leeight commented
你的意思是应该改成这样子?
// 204行
define('error/GenericError', [
'require',
'tpl',
'tpl!178c7118.tpl.html',
'./View',
'./Action',
'eoo'
]
// 1735行
define('tpl', [
'require',
'ub-ria/tpl',
'common/config'
], function (require) {
otakustay commented
重新理了下思路,这东西的本质是,在遇上tpl!xxx.html
的时候,我的tpl
还没有初始化完,也不知道什么时候能初始化完……
所以这个问题看来不是能通过build来解决的,我从程序上去想想办法……
otakustay commented
这问题不是在build上,是我自己的事儿,关了