У меня есть задача gulp, которая отвечает за преобразование .ts-файлов в заданное местоположение и выплевывание .js в другом заданном месте.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"
]
}
Как я уже сказал, он просто переносится на .js, но в итоге я получаю всех файлов файлов typscript независимо от их местонахождения, переданных в .js и скопированных в одну и ту же структуру папок при dist:
root
|__dist
| |__bot
| | |__*.js
| |__logon
| |__*.js
|
|__source
| |__bot
| |__logon
Что я здесь делаю неправильно?
Привет Sven - спасибо за объяснение. Принимая это во внимание и снова посмотрев на мой gulpfile.js, поведение имеет смысл. Используя мой текущий подход, мне нужно будет создать новый файл tsproject.json для каждой группы файлов, которые я бы хотел переместить, и это просто не имеет смысла. Итак, что я сделал, это вариант 2, и это работает отлично, предполагая, что он по-прежнему соблюдает настройки в настройках tsBotProject (tsconfig.json). Еще раз спасибо! –