@@ -41,7 +41,11 @@ const defaultLoaders = {
4141 mainfest : resolveSync ( '@hap-toolkit/packager/lib/loaders/manifest-loader.js' ) ,
4242 // page
4343 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
4549}
4650
4751/**
@@ -119,6 +123,40 @@ function makeLoaderString(type, config, newJSCard, uxType) {
119123 return stringifyLoaders ( loaders )
120124 }
121125
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+
122160 if ( type === FRAG_TYPE . PROPS ) {
123161 loaders = [
124162 {
@@ -543,6 +581,60 @@ function processPropsFrag($loader, datas, uxType) {
543581 return code
544582}
545583
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+
546638/**
547639 * 统一解析全部后处理
548640 * @param $loader
@@ -591,5 +683,9 @@ export {
591683 processDataFrag ,
592684 processActionFrag ,
593685 processPropsFrag ,
594- parseImportList
686+ parseImportList ,
687+ // honor process frag
688+ processDataAppFrag ,
689+ processCommandFrag ,
690+ // end honor process frag
595691}
0 commit comments