1
有很多實用程序依賴文件時間戳,如果他們發現文件修改時間已更改,它們的緩存將被清除。如何使TypeScript避免重寫文件如果內容在編譯之間沒有改變?
因此,我想在比較文件內容的基礎上跳過在TypeScript的發射階段重寫文件。如果編譯器要用相同的內容重寫相同的文件,可能它應該能夠跳過重寫,爲什麼不呢?
是否有任何參數,CLI標誌,Github上的錯誤,解決這個問題的pull請求?
有很多實用程序依賴文件時間戳,如果他們發現文件修改時間已更改,它們的緩存將被清除。如何使TypeScript避免重寫文件如果內容在編譯之間沒有改變?
因此,我想在比較文件內容的基礎上跳過在TypeScript的發射階段重寫文件。如果編譯器要用相同的內容重寫相同的文件,可能它應該能夠跳過重寫,爲什麼不呢?
是否有任何參數,CLI標誌,Github上的錯誤,解決這個問題的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創造了一個咕嚕插件:https://github.com/noomorph/grunt-ts-watch
https://github.com/ivogabe/gulp-typescript/issues/401 – toskv
感謝您的輸入。但是,我沒有使用Gulp,我現在也沒有這種選擇。還有一件事我不完全喜歡使用快速編譯。是的,它肯定會有所幫助,但我更感興趣的是如何最大限度地利用常規的TS編譯。 – noomorph
你不能真正做更多的tsc然後設置選項,唯一的選擇,這會讓它走得更快是isolateModules之一。如果你想要別的東西,你必須得到一些外部的東西。 :) – toskv