如果在编译之间内容没有更改,如何使TypeScript避免重写文件?

如果在编译之间内容没有更改,如何使TypeScript避免重写文件?,typescript,Typescript,有许多实用程序依赖于文件时间戳,如果发现文件修改时间已更改,它们的缓存将被清除 因此,我想在比较文件内容的基础上,跳过在TypeScript的发射阶段重写文件。如果编译器要用相同的内容重写相同的文件,那么它应该能够跳过重写,为什么不呢 是否有任何参数、CLI标志、Github上的bug、pull请求可以解决此问题?目前,最好的方法是使用tsc--watch功能。 您可以创建一个侦听编译完成的脚本,然后执行任何您想要的操作 比如说, 'use strict'; const cp = requir

有许多实用程序依赖于文件时间戳,如果发现文件修改时间已更改,它们的缓存将被清除

因此,我想在比较文件内容的基础上,跳过在TypeScript的发射阶段重写文件。如果编译器要用相同的内容重写相同的文件,那么它应该能够跳过重写,为什么不呢


是否有任何参数、CLI标志、Github上的bug、pull请求可以解决此问题?

目前,最好的方法是使用
tsc--watch
功能。 您可以创建一个侦听编译完成的脚本,然后执行任何您想要的操作

比如说,

'use strict';

const cp = require('child_process');

cp.spawn('tsc', ['-w'], { shell: true })
  .stdout.on('data', data => {
    const text = data.toString()
    process.stdout.write(text)
    if (/.*Compilation complete/.test(text)) {
      cp.spawnSync('npm', ['run', 'lint'], {
        stdio: 'inherit',
        shell: true
      })
    }
  })

@noomorph已经创建了一个grunt插件:

@toskv,我想我们可以做得更多。以防万一你也感兴趣:可以考虑使用<代码>手表< /代码>?我不使用咕噜(我直接使用NPM脚本)所以我不知道这对你有多困难。你可以看看这个例子,看看它是否有帮助:@unional,最终我根据你的解决方案根据我的需要编写了这个任务,你获得了学分。再次,非常感谢!不客气!:)