diff --git a/packages/jest-config/src/defaults.js b/packages/jest-config/src/defaults.js index 2b38275c529c..da81bf647cd9 100644 --- a/packages/jest-config/src/defaults.js +++ b/packages/jest-config/src/defaults.js @@ -23,7 +23,14 @@ module.exports = ({ automock: false, bail: false, browser: false, - cacheDirectory: path.join(os.tmpdir(), 'jest'), + cacheDirectory: (() => { + if (process.getuid == null) { + return path.join(os.tmpdir(), 'jest'); + } + // On some platforms tmpdir() is `/tmp`, causing conflicts between different users and + // permission issues. Adding an additional subdivision by UID can help. + return path.join(os.tmpdir(), 'jest', process.getuid().toString(36)); + })(), clearMocks: false, coveragePathIgnorePatterns: [NODE_MODULES_REGEXP], coverageReporters: ['json', 'text', 'lcov', 'clover'],