仅在更改的文件上运行grunt任务

时间:2014-09-10 09:57:53

标签: gruntjs typescript grunt-contrib-watch grunt-ts

我有一个grunt ts任务,将打字稿文件转换为javascript。在gunt服务器上我正在翻译我拥有的所有.ts文件。然后我想配置grunt来监视.ts文件,但只转换已经更改的.ts文件。

搜索网页后,我找到了以下选项:

Grunt ts任务:

ts: {
        all: {
            src: ['scripts/**/*.ts'],
            reference: 'scripts/_references.ts'
        }
    },

这是一项艰巨的任务,我正在听监视事件:

grunt.event.on('watch', function (action, filepath, target) {
    switch (target) {
        case 'ts':
        {
            grunt.config(['ts.all.src'], filepath);
            grunt.config('watch.ts.tasks', 'ts');
            break;
        }
    }

问题是任务运行,但我正在更新到ts.all.sec变量的文件与grunt服务器上的文件保持一致,并且任务再次转换所有文件。

谢谢!

2 个答案:

答案 0 :(得分:1)

  

但只转换已更改的.ts文件。

如果你不使用reference.ts,那么

grunt-ts可以做到这一点(因为typescript编译器会向上走,而不管编译所有引用的文件),并且不要使用--out(你在这里很好......你没有使用它)而是使用外部模块。更多:(https://github.com/grunt-ts/grunt-ts#fast-compile

答案 1 :(得分:0)

您正在寻找名为grunt-newer的插件。它完全符合您的需求。