我有
import MyHtml from "./junkhtml.htm";
在TypeScript文件中,由于
declare module "*.htm" {
const value: string;
export default value;
}
在一个
.d.ts
文件在我的项目上运行gulp typescript时,没有出现任何错误,但导入已完全删除。TS似乎认为我的导入只存在于类型声明空间中,并不表示任何真实的内容。我如何指示ts是的,导入需要保持,以便汇总(或网页包)可以在下游处理它?
这是我的tsconfig。json文件
{
"compilerOptions": {
"allowUnreachableCode": true,
"target": "esnext",
"baseUrl": "./",
"jsx": "react",
"allowSyntheticDefaultImports": true,
"allowJs": true,
"moduleResolution": "node",
"module": "esnext",
"experimentalDecorators": true,
"lib": ["es2015", "dom"],
"typeRoots": ["./typings/modules", "./node_modules/@types"]
},
"include": ["./**/*.ts", "./**/*.tsx"],
"exclude": ["node_modules"]
}
这是我用的gulpfile
const gulp = require("gulp");
const gprint = require("gulp-print").default;
const ts = require("gulp-typescript");
const tsProject = ts.createProject("./tsconfig.json", { noEmitOnError: true });
const dirs = ["applicationRoot", "modules", "util"];
gulp.task("ts", () => {
var failed = false;
return gulp
.src(["./reactStartup.ts", ...dirs.map(f => `./${f}/**/*.ts`), ...dirs.map(f => `./${f}/**/*.tsx`)], { base: "./" })
.pipe(tsProject())
.pipe(gprint(filePath => "TypeScript compiled: " + filePath))
.pipe(gulp.dest(""))
.on("finish", () => {});
});