我有一个带引用的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
,则引用的TS文件中的JS将在TS文件的位置发出,这些文件可能位于项目文件夹之外。
答案 0 :(得分: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']
}