我想把require/import模板作为字符串输入到我的代码中。但在一些转轨错误中运行。
这是我正在使用的狂欢Browserify设置:
browserify({ basedir: './src' })
.transform(stringify(['.tpl.html']))
.add('app.ts')
.plugin(tsify)在app.ts中,我希望导入如下模板:
import template from './app.tpl.html';
console.log(template);在其中,app.tpl.html可能如下所示:
<h1>Hello!</h1>我尝试了不同的设置,使用require over import。使用require我得到以下错误:
Browserify Error { [TypeScript error: src/components/app.ts(1,9):
Error TS2304: Cannot find name 'require'.]
message: 'src/components/app.ts(1,9): Error TS2304: Cannot find name \'require\'.',
fileName: 'src/components/app.ts',
line: 1,
column: 9,
name: 'TypeScript error' }Usind import找不到模块,我得到以下错误:
Browserify Error { [TypeScript error: src/components/test.ts(1,22): Error TS2307: Cannot find module './test.tpl.html'.]
message: 'src/components/test.ts(1,22): Error TS2307: Cannot find module \'./test.tpl.html\'.',
fileName: 'src/components/test.ts',
line: 1,
column: 22,
name: 'TypeScript error' }我找不到一起使用"stringify“和"tsify”的例子。有谁能用HTML模板来使用“浏览器化”和"tsify“呢?
发布于 2015-10-13 04:42:20
如果您想在TypeScript中导入/要求与TypeScript模块不同的东西,则需要使用“本机”require函数(在本例中是由browserify定义的)。TypeScript编译器不知道这一点,除非您告诉它。
declare function require (id: string): any; // declare there will be 'require' function in the runtime
var template = require('./app.tpl.html'); // use declared function in pure JS发布于 2016-03-14 19:03:09
另一种选择是使用注释。
这样的代码(menuTemplate.jst是静态模板文件):
/// <amd-dependency path="general/menuTemplate.jst" name="menuTemplate" />
import Marionette = require("backbone.marionette");
declare var menuTemplate: string;
class MenuView extends Marionette.ItemView<any> {
template = menuTemplate;
}产生产出(ES 6):
/// <amd-dependency path="general/menuTemplate.jst" name="menuTemplate" />
define(["require", "exports", "general/menuTemplate.jst", "backbone.marionette"], function (require, exports, menuTemplate, Marionette) {
"use strict";
class MenuView extends Marionette.ItemView {
constructor(...args) {
super(...args);
this.template = menuTemplate;
}
}
});https://stackoverflow.com/questions/33033740
复制相似问题