@@ -41,7 +41,11 @@ const defaultLoaders = {
41
41
mainfest : resolveSync ( '@hap-toolkit/packager/lib/loaders/manifest-loader.js' ) ,
42
42
// page
43
43
access : resolveSync ( './access-loader.js' ) ,
44
- 'extract-css' : resolveSync ( './extract-css-loader.js' )
44
+ 'extract-css' : resolveSync ( './extract-css-loader.js' ) ,
45
+ // honor loader
46
+ datapp : resolveSync ( './datapp-loader.js' ) ,
47
+ command : resolveSync ( './command-loader.js' ) ,
48
+ // end honor loader
45
49
}
46
50
47
51
/**
@@ -119,6 +123,40 @@ function makeLoaderString(type, config, newJSCard, uxType) {
119
123
return stringifyLoaders ( loaders )
120
124
}
121
125
126
+ // honor loader
127
+ if ( type === FRAG_TYPE . DATAPP ) {
128
+ loaders = [
129
+ {
130
+ name : defaultLoaders . datapp
131
+ } ,
132
+ {
133
+ name : defaultLoaders . fragment ,
134
+ query : {
135
+ index : 0 ,
136
+ type : FRAG_TYPE . DATA
137
+ }
138
+ }
139
+ ]
140
+ return stringifyLoaders ( loaders )
141
+ }
142
+
143
+ if ( type === FRAG_TYPE . COMMANDS ) {
144
+ loaders = [
145
+ {
146
+ name : defaultLoaders . command
147
+ } ,
148
+ {
149
+ name : defaultLoaders . fragment ,
150
+ query : {
151
+ index : 0 ,
152
+ type : FRAG_TYPE . DATA
153
+ }
154
+ }
155
+ ]
156
+ return stringifyLoaders ( loaders )
157
+ }
158
+ // end honor loader
159
+
122
160
if ( type === FRAG_TYPE . PROPS ) {
123
161
loaders = [
124
162
{
@@ -543,6 +581,60 @@ function processPropsFrag($loader, datas, uxType) {
543
581
return code
544
582
}
545
583
584
+ /**
585
+ * 处理轻卡<data>片段中app(only honor)
586
+ * @param $loader
587
+ * @param scripts
588
+ * @param uxType
589
+ * @returns {string }
590
+ */
591
+ function processDataAppFrag ( $loader , datas , uxType ) {
592
+ let code = 'null'
593
+ if ( datas . length ) {
594
+ // 有且仅有一个<data>节点
595
+ const data = datas [ 0 ]
596
+ // 文件绝对路径
597
+ let src = $loader . resourcePath
598
+ const fragAttrsSrc = data . attrs . src
599
+ if ( fragAttrsSrc ) {
600
+ src = fragAttrsSrc
601
+ }
602
+ code = makeRequireString (
603
+ $loader ,
604
+ makeLoaderString ( FRAG_TYPE . DATAPP , { } , true , uxType ) ,
605
+ `${ src } ?index=0&lite=1`
606
+ )
607
+ }
608
+ return code
609
+ }
610
+
611
+ /**
612
+ * 处理轻卡<data>片段中command(only honor)
613
+ * @param $loader
614
+ * @param scripts
615
+ * @param uxType
616
+ * @returns {string }
617
+ */
618
+ function processCommandFrag ( $loader , datas , uxType ) {
619
+ let code = 'null'
620
+ if ( datas . length ) {
621
+ // 有且仅有一个<data>节点
622
+ const data = datas [ 0 ]
623
+ // 文件绝对路径
624
+ let src = $loader . resourcePath
625
+ const fragAttrsSrc = data . attrs . src
626
+ if ( fragAttrsSrc ) {
627
+ src = fragAttrsSrc
628
+ }
629
+ code = makeRequireString (
630
+ $loader ,
631
+ makeLoaderString ( FRAG_TYPE . COMMANDS , { } , true , uxType ) ,
632
+ `${ src } ?index=0&lite=1`
633
+ )
634
+ }
635
+ return code
636
+ }
637
+
546
638
/**
547
639
* 统一解析全部后处理
548
640
* @param $loader
@@ -591,5 +683,9 @@ export {
591
683
processDataFrag ,
592
684
processActionFrag ,
593
685
processPropsFrag ,
594
- parseImportList
686
+ parseImportList ,
687
+ // honor process frag
688
+ processDataAppFrag ,
689
+ processCommandFrag ,
690
+ // end honor process frag
595
691
}
0 commit comments