0

参照付きの TypeScript ファイルがあります。参照ファイルには他の参照があります。grunt-ts タスクを実行すると、サブフォルダーの階層が作成され、参照階層が反映され、対応する各 JS ファイルがサブフォルダーに書き込まれscriptsます (明らかにoutDirオプションの値から)。発行されたすべての JS ファイルが最終的に 1 つのサブフォルダーになるようにタスクを構成するにはどうすればよいですか?

私の構成は次のようになります。

grunt.initConfig({
    ts: {
        default: {
            src: ['**/*.ts', "!node_modules/**/*.ts"],
            noImplicitAny: true,
            sourceMap: true,
            target: 'es3',
            fast: 'always',
            outDir: 'scripts'
        }
    }
});

の絶対パスを指定してみましたoutDirが、結果は同じでした。

を指定しないoutDirと、参照された TS ファイルからの JS が TS ファイルの場所に出力されますが、これはプロジェクト フォルダーの外にある可能性があります。

4

1 に答える 1

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']
}
于 2015-03-12T19:04:04.930 に答える