2017-06-03 51 views
1

有很多實用程序依賴文件時間戳,如果他們發現文件修改時間已更改,它們的緩存將被清除。如何使TypeScript避免重寫文件如果內容在編譯之間沒有改變?

因此,我想在比較文件內容的基礎上跳過在TypeScript的發射階段重寫文件。如果編譯器要用相同的內容重寫相同的文件,可能它應該能夠跳過重寫,爲什麼不呢?

是否有任何參數,CLI標誌,Github上的錯誤,解決這個問題的pull請求?

+0

https://github.com/ivogabe/gulp-typescript/issues/401 – toskv

+0

感謝您的輸入。但是,我沒有使用Gulp,我現在也沒有這種選擇。還有一件事我不完全喜歡使用快速編譯。是的,它肯定會有所幫助,但我更感興趣的是如何最大限度地利用常規的TS編譯。 – noomorph

+0

你不能真正做更多的tsc然後設置選項,唯一的選擇,這會讓它走得更快是isolateModules之一。如果你想要別的東西,你必須得到一些外部的東西。 :) – toskv

回答

2

目前,最好的方法是使用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創造了一個咕嚕插件:https://github.com/noomorph/grunt-ts-watch

相關問題