我有一个负责转换给定位置中的.ts文件并在另一个给定位置吐出.js的gulp任务。gulp-typescript正在编译所有.ts文件,而不仅仅是来自特定位置的文件。
我遇到的问题是,它不仅在发送到目的地之前将指定位置的.ts文件转换为.js文件,而且还对父文件夹和同级文件夹中的所有内容执行相同操作。
我的文件夹结构如下:
root
|__dist
|
|__source
| |__bot
| |__logon
这里是我的gulpfile.js的简化版本:
var gulp = require("gulp"),
ts = require("gulp-typescript");
var paths = {
botScripts: 'source/bot/*.ts',
releaseBot: 'dist/bot'
};
// Create typescript project
var tsBotProject = ts.createProject('tsconfig.json');
// Create the tasks
gulp.task('botscripts', function() {
var tsResult = tsBotProject.src(paths.botScripts)
.pipe(tsBotProject());
return tsResult.js.pipe(gulp.dest(paths.releaseBot));
});
这里是我的tsconfig.json:
{
"compilerOptions": {
"target": "es6",
"module": "commonjs"
},
"exclude": [
"node_modules"
]
}
正如我所说,它确实transpile .js就好了,但我最终是所有 typscript文件,无论位置,转换为.js并复制到dist下的相同文件夹结构:
root
|__dist
| |__bot
| | |__*.js
| |__logon
| |__*.js
|
|__source
| |__bot
| |__logon
我在这里做错了什么?
喜斯文 - 感谢您的解释。 考虑到这一点,并再次看了我的gulpfile.js,这种行为确实有道理。使用我目前的方法,我需要为每个我想要编译的文件创建一个新的tsproject.json文件 - 而这只是没有意义。 所以我所做的是采取选项2,并且工作得很好 - 当然假设它仍然尊重tsBotProject(tsconfig.json设置)中的设置 再次感谢! –