将引用的 TS 文件中发出的 JS 文件输出到单个文件夹中,不带子文件夹
Output emitted JS files from referenced TS files into single folder, without subfolders
我有一个带参考的 TypeScript 文件;引用的文件又具有其他引用。当我 运行 g运行t-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 文件的位置发出,该位置可能在项目文件夹之外。
使用展平选项应该可以解决问题:
先输出到临时文件夹:
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']
}
我有一个带参考的 TypeScript 文件;引用的文件又具有其他引用。当我 运行 g运行t-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 文件的位置发出,该位置可能在项目文件夹之外。
使用展平选项应该可以解决问题:
先输出到临时文件夹:
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']
}