Skip to content

Commit e3aab35

Browse files
committed
fix: clean up system temp directory when running.
While the system temp directory gets cleaned up semi-regularly, on long-running machines (e.g. CI servers), it is possible for the PID to get reused before the system temp directory gets cleared. When this happens, the temp directory we create as an intermediate location for TypeScript build artifacts (to prevent churn in the build) can end up being used for multiple builds, even across separate apps. This can result in very bad output from the build, including total runtime failures from things like `require` entries including files from different builds or apps. Prevent this by always running `fs.removeSync` on the temp output directory prior to setting it and putting new output there. Fixes #318.
1 parent 5ae2ab0 commit e3aab35

File tree

1 file changed

+2
-0
lines changed
  • lib/incremental-typescript-compiler

1 file changed

+2
-0
lines changed

lib/incremental-typescript-compiler/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ module.exports = class IncrementalTypescriptCompiler {
8080
outDir() {
8181
if (!this._outDir) {
8282
let outDir = path.join(tmpdir(), `e-c-ts-${process.pid}`);
83+
fs.removeSync(outDir);
84+
8385
this._outDir = outDir;
8486
fs.mkdirsSync(outDir);
8587
}

0 commit comments

Comments
 (0)