Skip to content

Commit 59ecce1

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 1228ff0 commit 59ecce1

File tree

1 file changed

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

1 file changed

+2
-0
lines changed

ts/lib/incremental-typescript-compiler/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,8 @@ module.exports = class IncrementalTypescriptCompiler {
117117
outDir() {
118118
if (!this._outDir) {
119119
let outDir = path.join(tmpdir(), `e-c-ts-${process.pid}`);
120+
fs.removeSync(outDir);
121+
120122
this._outDir = outDir;
121123
fs.mkdirsSync(outDir);
122124
}

0 commit comments

Comments
 (0)