我正在使用 tsify
来构建打字稿文件。但是,目前看来tsify
正在读取我的源中的所有打字稿文件,而不仅仅是我的主字样文件中包含的文件(以及随后导入的文件)。如何将tsify
仅限于browserify
的文件?
GULP任务:
gulp.task("build", function()
{
return browserify({})
.add("index.ts")
.plugin(tsify)
.transform("babelify", {
"presets" : ["es2015", "stage-0"]
})
.bundle()
.pipe(source("index.js"))
.pipe(gulp.dest("www"));
});
和tsconfig.json:
{
"compileOnSave": true,
"compilerOptions": {
"lib": [
"dom",
"es2015",
"es2016",
"es2017"
],
"noImplicitAny": true,
"strictNullChecks": true,
"target": "es2015"
},
"exclude": [
"node_modules"
]
}
让tsify
仅包含汇编中浏览的文件,您应该在tsconfig.json
文件中指定一个空的files
数组。
{
"compileOnSave": true,
"compilerOptions": {
"lib": [
"dom",
"es2015",
"es2016",
"es2017"
],
"noImplicitAny": true,
"strictNullChecks": true,
"target": "es2015"
},
"files": []
}
然后, tsify
将仅在编译中仅包含浏览器入口点文件及其依赖项。
如果您使用tsconfig.json
的其他工具,这可能会引起问题,因为他们不知道编译中涉及哪些文件。如果是这种情况,您也可以在tsconfig.json
中包含入口点文件,或者可以使用单独的,不同命名的配置文件 - 例如。tsconfig-tsify.json
-对于tsify
。(您可以使用tsify
的project
选项指定配置文件。)