@@ -108,6 +108,16 @@ function _removeModuleId(refactor: TypeScriptFileRefactor) {
108
108
} ) ;
109
109
}
110
110
111
+ function _getResourceRequest ( element : ts . Expression , sourceFile : ts . SourceFile ) {
112
+ if ( element . kind == ts . SyntaxKind . StringLiteral ) {
113
+ // if string, assume relative path unless it start with /
114
+ return `'${ loaderUtils . urlToRequest ( ( element as ts . StringLiteral ) . text , '' ) } '` ;
115
+ } else {
116
+ // if not string, just use expression directly
117
+ return element . getFullText ( sourceFile ) ;
118
+ }
119
+ }
120
+
111
121
function _replaceResources ( refactor : TypeScriptFileRefactor ) : void {
112
122
const sourceFile = refactor . sourceFile ;
113
123
@@ -132,7 +142,7 @@ function _replaceResources(refactor: TypeScriptFileRefactor): void {
132
142
133
143
if ( key == 'templateUrl' ) {
134
144
refactor . replaceNode ( node ,
135
- `template: require(${ node . initializer . getFullText ( sourceFile ) } )` ) ;
145
+ `template: require(${ _getResourceRequest ( node . initializer , sourceFile ) } )` ) ;
136
146
} else if ( key == 'styleUrls' ) {
137
147
const arr = < ts . ArrayLiteralExpression [ ] > (
138
148
refactor . findAstNodes ( node , ts . SyntaxKind . ArrayLiteralExpression , false ) ) ;
@@ -141,7 +151,7 @@ function _replaceResources(refactor: TypeScriptFileRefactor): void {
141
151
}
142
152
143
153
const initializer = arr [ 0 ] . elements . map ( ( element : ts . Expression ) => {
144
- return element . getFullText ( sourceFile ) ;
154
+ return _getResourceRequest ( element , sourceFile ) ;
145
155
} ) ;
146
156
refactor . replaceNode ( node , `styles: [require(${ initializer . join ( '), require(' ) } )]` ) ;
147
157
}
0 commit comments