在Typescript中通过Webpack导入Jade模板
我试图抓住目前的前端技术,并希望使用Webpack加载Jade模板。 使用Javascript,这个按预期工作。
app.js
:
import * as foo from "html!jade-html!./header.jade"; document.write(foo.default);
但是,如果我把它重命名为app.ts
,内容不变, webpack
要构build:
ERROR in ./app.ts (5,22): error TS2307: Cannot find module 'html!jade-html!./header.jade'.
我很惊讶模块加载语义会突然改变使用TypeScript。 是什么赋予了?
奖励积分:这个Jade加载片断可以写得更短吗?
TypeScript为import
关键字赋予特殊的含义(期待实际的模块)。 你应该定义一个require
函数并使用var foo = require('...')
(注意var
而不是import
)。
以下是ts-loader文档中的require定义示例。
declare var require: { <T>(path: string): T; (paths: string[], callback: (...modules: any[]) => void): void; ensure: (paths: string[], callback: (require: <T>(path: string) => T) => void) => void; };