输出从引用的TS文件将JS文件发送到单个文件夹,没有子文件夹

时间:2015-03-12 07:26:52

标签: typescript grunt-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,则引用的TS文件中的JS将在TS文件的位置发出,这些文件可能位于项目文件夹之外。

1 个答案:

答案 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']
}