使用grunt-ts仅编译已更改的typescript文件

时间:2014-12-11 16:05:05

标签: typescript grunt-ts

我想用grunt-ts只编译已更改的打字稿文件(否则会非常慢),但似乎我不能。

  • 我试图将它作为一项并发任务启动,但在这种情况下,似乎我的普通手表无效。
  • 还尝试使用watch,但在这种情况下,它正在编译所有文件。

我成功的唯一方法就是将grunt-ts作为一个单独的grunt进程启动。这样它实际上只是编译已更改的文件,但我需要单独启动它

显然我想只跑一次咕噜声。

有什么建议我能做到吗?

更新:

奇怪的是,今天我改变了我的设置并且工作得很好。

我有完成的参考文件(在app文件夹上方)和导航,我的文件编译得足够快。

不确定是怎么做的,因为ts:dev的编译设置为false(它只是用于维护我的参考文件)。

此外,我停止了咕噜声,试着是否正在运行其他东西。但js文件没有刷新,所以没有别的东西正在编译它们。

奇怪,但它现在正在工作,因为我想拥有它。 (不确定为什么grunt-ts正在编译文件,如果我默认为false,但是......)

我的配置是:

ts: {
    options: {
        compile: false,
        comments: false,
        target: 'es5',
        module: 'amd',
        sourceMap: true,
        sourceRoot: '',
        mapRoot: '',
        declaration: false,
        noImplicitAny: false,
        fast: 'never'
    },
    initDev: {
        src: [
            '<%= yeoman.app %>/**/*.ts'
        ],
        reference: '_references.ts',
        options: {
            compile: true
        }
    },
    dev: {
        src: [
            '<%= yeoman.app %>/**/*.ts'
        ],
        reference: '_references.ts'
    }
}

...

watch: {
    ts: {
        files: '<%= yeoman.app %>/**/*.ts',
        tasks: ['ts:dev']
    }
}

我正在启动ts:当grunt启动时initDev,并在文件更改时运行ts:dev。

更新2:

很抱歉看起来其他东西正在编译文件。我已经在编辑器设置中设置了tsc来编译。哪个好。

1 个答案:

答案 0 :(得分:0)

我个人使用打字稿观察者本身。我也使用(免责声明,我写了)fast-live-reload做其他事情,比如同步文件夹,指南针等等。