From 9375a38648587c909d549d9251ea30ec6479c922 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 24 Oct 2018 14:43:50 -0700 Subject: [PATCH] Fixing editor-distro compile error Fixes #61741 --- build/lib/standalone.js | 20 +++++++++++++++----- build/lib/standalone.ts | 21 ++++++++++++++++----- build/lib/treeshaking.js | 3 ++- build/lib/treeshaking.ts | 4 +++- src/tsconfig.monaco.json | 1 - 5 files changed, 36 insertions(+), 13 deletions(-) diff --git a/build/lib/standalone.js b/build/lib/standalone.js index c01e0f461f4..bc5f6d9decc 100644 --- a/build/lib/standalone.js +++ b/build/lib/standalone.js @@ -28,12 +28,22 @@ function writeFile(filePath, contents) { } function extractEditor(options) { const tsConfig = JSON.parse(fs.readFileSync(path.join(options.sourcesRoot, 'tsconfig.json')).toString()); - tsConfig.compilerOptions.noUnusedLocals = false; - tsConfig.compilerOptions.preserveConstEnums = false; - tsConfig.compilerOptions.declaration = false; - delete tsConfig.compilerOptions.types; + let compilerOptions; + if (tsConfig.extends) { + compilerOptions = Object.assign({}, require(path.join(options.sourcesRoot, tsConfig.extends)).compilerOptions, tsConfig.compilerOptions); + } + else { + compilerOptions = tsConfig.compilerOptions; + } + tsConfig.compilerOptions = compilerOptions; + compilerOptions.noUnusedLocals = false; + compilerOptions.preserveConstEnums = false; + compilerOptions.declaration = false; + compilerOptions.moduleResolution = ts.ModuleResolutionKind.Classic; + delete compilerOptions.types; + delete tsConfig.extends; tsConfig.exclude = []; - options.compilerOptions = tsConfig.compilerOptions; + options.compilerOptions = compilerOptions; let result = tss.shake(options); for (let fileName in result) { if (result.hasOwnProperty(fileName)) { diff --git a/build/lib/standalone.ts b/build/lib/standalone.ts index aba118ab529..c4b128542e7 100644 --- a/build/lib/standalone.ts +++ b/build/lib/standalone.ts @@ -32,13 +32,24 @@ function writeFile(filePath: string, contents: Buffer | string): void { export function extractEditor(options: tss.ITreeShakingOptions & { destRoot: string }): void { const tsConfig = JSON.parse(fs.readFileSync(path.join(options.sourcesRoot, 'tsconfig.json')).toString()); - tsConfig.compilerOptions.noUnusedLocals = false; - tsConfig.compilerOptions.preserveConstEnums = false; - tsConfig.compilerOptions.declaration = false; - delete tsConfig.compilerOptions.types; + let compilerOptions: { [key: string]: any }; + if (tsConfig.extends) { + compilerOptions = Object.assign({}, require(path.join(options.sourcesRoot, tsConfig.extends)).compilerOptions, tsConfig.compilerOptions); + } else { + compilerOptions = tsConfig.compilerOptions; + } + tsConfig.compilerOptions = compilerOptions; + + compilerOptions.noUnusedLocals = false; + compilerOptions.preserveConstEnums = false; + compilerOptions.declaration = false; + compilerOptions.moduleResolution = ts.ModuleResolutionKind.Classic; + + delete compilerOptions.types; + delete tsConfig.extends; tsConfig.exclude = []; - options.compilerOptions = tsConfig.compilerOptions; + options.compilerOptions = compilerOptions; let result = tss.shake(options); for (let fileName in result) { diff --git a/build/lib/treeshaking.js b/build/lib/treeshaking.js index b8045415698..61cda44028a 100644 --- a/build/lib/treeshaking.js +++ b/build/lib/treeshaking.js @@ -70,7 +70,8 @@ function createTypeScriptLanguageService(options) { const filepath = path.join(TYPESCRIPT_LIB_FOLDER, filename); RESOLVED_LIBS[`defaultLib:${filename}`] = fs.readFileSync(filepath).toString(); }); - const host = new TypeScriptLanguageServiceHost(RESOLVED_LIBS, FILES, ts.convertCompilerOptionsFromJson(options.compilerOptions, ``).options); + const compilerOptions = ts.convertCompilerOptionsFromJson(options.compilerOptions, options.sourcesRoot).options; + const host = new TypeScriptLanguageServiceHost(RESOLVED_LIBS, FILES, compilerOptions); return ts.createLanguageService(host); } /** diff --git a/build/lib/treeshaking.ts b/build/lib/treeshaking.ts index 3439b1437ac..e84aa7effeb 100644 --- a/build/lib/treeshaking.ts +++ b/build/lib/treeshaking.ts @@ -126,7 +126,9 @@ function createTypeScriptLanguageService(options: ITreeShakingOptions): ts.Langu RESOLVED_LIBS[`defaultLib:${filename}`] = fs.readFileSync(filepath).toString(); }); - const host = new TypeScriptLanguageServiceHost(RESOLVED_LIBS, FILES, ts.convertCompilerOptionsFromJson(options.compilerOptions, ``).options); + const compilerOptions = ts.convertCompilerOptionsFromJson(options.compilerOptions, options.sourcesRoot).options; + + const host = new TypeScriptLanguageServiceHost(RESOLVED_LIBS, FILES, compilerOptions); return ts.createLanguageService(host); } diff --git a/src/tsconfig.monaco.json b/src/tsconfig.monaco.json index 9e295f40659..1bf4732a4a0 100644 --- a/src/tsconfig.monaco.json +++ b/src/tsconfig.monaco.json @@ -1,5 +1,4 @@ { - "$schema": "https://schemastore.azurewebsites.net/schemas/json/tsconfig.json", "compilerOptions": { "noEmit": true, "module": "amd", -- GitLab