我尝试import
我的html模板,以便webpack能够识别它们并在构建时包含它们。 (webpack -d
)
根据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>
很奇怪。
但现在这不起作用
$routeProvider.when("/test", {
template: template, // ERROR! template is typeof(*.html) expected string
controller: MyController,
controllerAs: "$ctrl"
});
但是,如果我将* .html模块更改为
declare module '*.html' {
const _: string;
export = _; // changed this
}
我现在可以做
import * as template from './myTemplate.html';
$routeProvider.when("/test", {
template: template, // Great success!
controller: MyController,
controllerAs: "$ctrl"
});
它有效,但为什么import template from './myTemplate.html';
不起作用? 我做错了什么,因为GitHub问题中的其他人似乎让它像那样工作。
答案 0 :(得分:5)
您没有做错任何事情,为了使用import template from './myTemplate.html';
您需要使用export default
语法。
由于webpack是处理html
的人,因此默认情况下导出doesn't do导出默认值。
但您可以configure html-loader
使用导出默认值。