Вывод испускаемых JS-файлов из указанных TS-файлов в одну папку без подпапок
У меня есть файл TypeScript со ссылкой; указанный файл, в свою очередь, имеет другие ссылки. Когда я запускаю задачу grunt-ts, создается иерархия подпапок, отражающая иерархию ссылок, и каждый соответствующий файл JS записывается в scripts
подпапка (очевидно, из значения outDir
опция). Как я могу настроить задачу так, чтобы все испускаемые файлы JS оказались в одной подпапке?
Моя конфигурация выглядит так:
grunt.initConfig({
ts: {
default: {
src: ['**/*.ts', "!node_modules/**/*.ts"],
noImplicitAny: true,
sourceMap: true,
target: 'es3',
fast: 'always',
outDir: 'scripts'
}
}
});
Я попытался указать абсолютный путь для outDir
с тем же результатом.
Если я не укажу outDir
JS из файлов TS, на которые ссылаются, испускается в расположении файлов TS, которое может находиться за пределами папки проекта.
1 ответ
Использование опции flatten должно помочь:
Сначала выведите во временную папку:
ts: {
default: {
src: ['**/*.ts', "!node_modules/**/*.ts"],
noImplicitAny: true,
sourceMap: true,
target: 'es3',
fast: 'always',
outDir: 'scripts-temp'
}
}
Затем используйте grunt-contrib-copy, чтобы скопировать и сгладить промежуточный вывод в конечный пункт назначения.
copy: {
default: {
expand: true,
cwd: 'scripts-temp/',
src: '**',
dest: 'scripts/',
flatten: true,
filter: 'isFile',
},
}
Наконец, используйте grunt-contrib-clean, чтобы удалить временную папку:
clean: {
default: ['scripts-temp']
}