diff --git a/src/main.js b/src/main.js index 2418113fc05..9e9e2afa4f6 100644 --- a/src/main.js +++ b/src/main.js @@ -125,7 +125,13 @@ function getNodeCachedDataDir() { return Promise.resolve(undefined); } - var dir = path.join(app.getPath('userData'), 'CachedData'); + // find commit id + var productJson = require(path.join(__dirname, '../product.json')); + if (!productJson.commit) { + return Promise.resolve(undefined); + } + + var dir = path.join(app.getPath('userData'), 'CachedData', productJson.commit); return mkdirp(dir).then(undefined, function (err) { /*ignore*/ }); } diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts index 8936a0baad0..cc7f81aad57 100644 --- a/src/vs/code/electron-main/main.ts +++ b/src/vs/code/electron-main/main.ts @@ -371,7 +371,7 @@ function createPaths(environmentService: IEnvironmentService): TPromise { environmentService.extensionsPath, environmentService.nodeCachedDataDir ]; - return TPromise.join(paths.map(p => mkdirp(p))) as TPromise; + return TPromise.join(paths.map(p => p && mkdirp(p))) as TPromise; } function createServices(args: ParsedArgs): IInstantiationService { diff --git a/src/vs/code/electron-main/windows.ts b/src/vs/code/electron-main/windows.ts index a6e18c0978e..02719389cda 100644 --- a/src/vs/code/electron-main/windows.ts +++ b/src/vs/code/electron-main/windows.ts @@ -730,7 +730,7 @@ export class WindowsManager implements IWindowsMainService { configuration.filesToOpen = filesToOpen; configuration.filesToCreate = filesToCreate; configuration.filesToDiff = filesToDiff; - configuration.nodeCachedDataDir = this.environmentService.isBuilt && this.environmentService.nodeCachedDataDir; + configuration.nodeCachedDataDir = this.environmentService.nodeCachedDataDir; return configuration; } diff --git a/src/vs/platform/environment/node/environmentService.ts b/src/vs/platform/environment/node/environmentService.ts index edc409e373b..15b2f19951a 100644 --- a/src/vs/platform/environment/node/environmentService.ts +++ b/src/vs/platform/environment/node/environmentService.ts @@ -129,7 +129,7 @@ export class EnvironmentService implements IEnvironmentService { get sharedIPCHandle(): string { return getIPCHandle(this.userDataPath, 'shared'); } @memoize - get nodeCachedDataDir(): string { return path.join(this.userDataPath, 'CachedData'); } + get nodeCachedDataDir(): string { return this.isBuilt ? path.join(this.userDataPath, 'CachedData', product.commit) : undefined; } constructor(private _args: ParsedArgs, private _execPath: string) { } }