@@ -108,6 +108,16 @@ function _removeModuleId(refactor: TypeScriptFileRefactor) {
108108 } ) ;
109109}
110110
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+
111121function _replaceResources ( refactor : TypeScriptFileRefactor ) : void {
112122 const sourceFile = refactor . sourceFile ;
113123
@@ -132,7 +142,7 @@ function _replaceResources(refactor: TypeScriptFileRefactor): void {
132142
133143 if ( key == 'templateUrl' ) {
134144 refactor . replaceNode ( node ,
135- `template: require(${ node . initializer . getFullText ( sourceFile ) } )` ) ;
145+ `template: require(${ _getResourceRequest ( node . initializer , sourceFile ) } )` ) ;
136146 } else if ( key == 'styleUrls' ) {
137147 const arr = < ts . ArrayLiteralExpression [ ] > (
138148 refactor . findAstNodes ( node , ts . SyntaxKind . ArrayLiteralExpression , false ) ) ;
@@ -141,7 +151,7 @@ function _replaceResources(refactor: TypeScriptFileRefactor): void {
141151 }
142152
143153 const initializer = arr [ 0 ] . elements . map ( ( element : ts . Expression ) => {
144- return element . getFullText ( sourceFile ) ;
154+ return _getResourceRequest ( element , sourceFile ) ;
145155 } ) ;
146156 refactor . replaceNode ( node , `styles: [require(${ initializer . join ( '), require(' ) } )]` ) ;
147157 }
0 commit comments