1

import 내 html 템플릿을 사용하여 webpack이이를 인식하고 빌드 할 때 포함시킵니다. (webpack -d)typescript에서 html 템플릿 가져 오기

this GitHub issue에 따르면 나는이

declare module '*.html' { 
    const _: string; 
    export default _; 
} 

그런 다음 import template from './myTemplate.html'; 일을해야해야한다.

그러나 트릭을 제대로 수행하지는 못합니다.

import template from './myTemplate.html'; 
console.log(template); // undefined 

그러나이 는 "작동"

import * as template from './myTemplate.html'; 
console.log(template); // <p>Hello world!</p> 

아주 이상한.

그러나 나는

import * as template from './myTemplate.html'; 

$routeProvider.when("/test", { 
    template: template, // Great success! 
    controller: MyController, 
    controllerAs: "$ctrl" 
}); 

그것은 작동 지금 할 수있는

declare module '*.html' { 
    const _: string; 
    export = _; // changed this 
} 

내 * .html 중에서 모듈을 변경하면 지금이 그러나

$routeProvider.when("/test", { 
    template: template, // ERROR! template is typeof(*.html) expected string 
    controller: MyController, 
    controllerAs: "$ctrl" 
}); 

작동하지 않지만, import template from './myTemplate.html';은 왜 작동하지 않습니까? 내가 뭘 잘못하고있는거야 다른 사람들이 GitHub 문제로 그런 식으로 작동하는 것처럼 보였다.

답변

3

import template from './myTemplate.html';을 사용하려면 잘못 입력하지 마십시오. export default 구문을 사용해야합니다.

사실 webpack이 html을 가져 오기 처리하기 때문에 기본적으로 doesn't do 내보내기가 기본값으로 설정됩니다.

configurehtml-loader 내보내기 기본값을 사용할 수 있습니다.

+0

아하, 실제로는 웹팩 문제이고 타이프 스크립트 문제는 아닙니다. –

+1

그것은 문제가되지 않습니다 :] 구성의 문제. – felixmosh