Skip to content

Commit 887bad5

Browse files
committed
fix(core): do not write filemap cache when there are errors (#29892)
<!-- Please make sure you have read the submission guidelines before posting an PR --> <!-- https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr --> <!-- Please make sure that your commit message follows our format --> <!-- Example: `fix(nx): must begin with lowercase` --> <!-- If this is a particularly complex change or feature addition, you can request a dedicated Nx release for this pull request branch. Mention someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they will confirm if the PR warrants its own release for testing purposes, and generate it for you if appropriate. --> ## Current Behavior <!-- This is the behavior we have today --> Errors when processing the project graph still result in the project file map being cached causing invalid information to be used when recalculating the project graph. ## Expected Behavior <!-- This is the behavior we should expect with the changes in this PR --> The project file map will not be cached if there are errors calculating the project graph. The dependencies of the graph will be recalculated from scratch the next time Nx runs. ## Related Issue(s) <!-- Please link the issue being fixed so it gets closed when this is merged. --> Fixes # (cherry picked from commit 35486ca)
1 parent 59e7f44 commit 887bad5

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

packages/nx/src/project-graph/nx-deps-cache.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -223,11 +223,16 @@ export function writeCache(
223223
});
224224
renameSync(tmpProjectGraphPath, nxProjectGraph);
225225

226-
writeJsonFile(tmpFileMapPath, cache);
227-
renameSync(tmpFileMapPath, nxFileMap);
228-
229226
writeJsonFile(tmpSourceMapPath, sourceMaps);
230227
renameSync(tmpSourceMapPath, nxSourceMaps);
228+
229+
// only write the file map if there are no errors
230+
// if there were errors, the errors make the filemap invalid
231+
// TODO: We should be able to keep the valid part of the filemap if the errors being thrown told us which parts of the filemap were invalid
232+
if (errors.length === 0) {
233+
writeJsonFile(tmpFileMapPath, cache);
234+
renameSync(tmpFileMapPath, nxFileMap);
235+
}
231236
done = true;
232237
} catch (err: any) {
233238
if (err instanceof Error) {

0 commit comments

Comments
 (0)