diff --git a/build/gulpfile.compile.js b/build/gulpfile.compile.js index 6f4523eeae6..c3049784fe4 100644 --- a/build/gulpfile.compile.js +++ b/build/gulpfile.compile.js @@ -15,7 +15,7 @@ const compileBuildTask = task.define('compile-build', task.series( util.rimraf('out-build'), util.buildWebNodePaths('out-build'), - compilation.compileTask('src', 'out-build', true, false) + compilation.compileTask('src', 'out-build', true) ) ); gulp.task(compileBuildTask); diff --git a/build/gulpfile.editor.js b/build/gulpfile.editor.js index 87b0252d39f..8e7ff5e3af3 100644 --- a/build/gulpfile.editor.js +++ b/build/gulpfile.editor.js @@ -84,7 +84,7 @@ const extractEditorSrcTask = task.define('extract-editor-src', () => { }); }); -const compileEditorAMDTask = task.define('compile-editor-amd', compilation.compileTask('out-editor-src', 'out-editor-build', true, false)); +const compileEditorAMDTask = task.define('compile-editor-amd', compilation.compileTask('out-editor-src', 'out-editor-build', true)); const optimizeEditorAMDTask = task.define('optimize-editor-amd', common.optimizeTask({ src: 'out-editor-build', diff --git a/build/gulpfile.js b/build/gulpfile.js index 75d3755d8e5..595cace0b24 100644 --- a/build/gulpfile.js +++ b/build/gulpfile.js @@ -11,7 +11,7 @@ require('events').EventEmitter.defaultMaxListeners = 100; const gulp = require('gulp'); const util = require('./lib/util'); const task = require('./lib/task'); -const { compileTask, watchTask, compileApiProposalNamesTask, watchApiProposalNamesTask } = require('./lib/compilation'); +const { transpileTask, compileTask, watchTask, compileApiProposalNamesTask, watchApiProposalNamesTask } = require('./lib/compilation'); const { monacoTypecheckTask/* , monacoTypecheckWatchTask */ } = require('./gulpfile.editor'); const { compileExtensionsTask, watchExtensionsTask, compileExtensionMediaTask } = require('./gulpfile.extensions'); @@ -20,11 +20,11 @@ gulp.task(compileApiProposalNamesTask); gulp.task(watchApiProposalNamesTask); // Transpile only -const transpileClientTask = task.define('transpile-client', task.series(util.rimraf('out'), util.buildWebNodePaths('out'), compileTask('src', 'out', false, true))); +const transpileClientTask = task.define('transpile-client', task.series(util.rimraf('out'), util.buildWebNodePaths('out'), transpileTask('src', 'out'))); gulp.task(transpileClientTask); // Fast compile for development time -const compileClientTask = task.define('compile-client', task.series(util.rimraf('out'), util.buildWebNodePaths('out'), compileApiProposalNamesTask, compileTask('src', 'out', false, false))); +const compileClientTask = task.define('compile-client', task.series(util.rimraf('out'), util.buildWebNodePaths('out'), compileApiProposalNamesTask, compileTask('src', 'out', false))); gulp.task(compileClientTask); const watchClientTask = task.define('watch-client', task.series(util.rimraf('out'), util.buildWebNodePaths('out'), task.parallel(watchTask('out', false), watchApiProposalNamesTask))); diff --git a/build/lib/compilation.js b/build/lib/compilation.js index 003a1ed6015..21944c463f9 100644 --- a/build/lib/compilation.js +++ b/build/lib/compilation.js @@ -4,7 +4,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ Object.defineProperty(exports, "__esModule", { value: true }); -exports.watchApiProposalNamesTask = exports.compileApiProposalNamesTask = exports.watchTask = exports.compileTask = void 0; +exports.watchApiProposalNamesTask = exports.compileApiProposalNamesTask = exports.watchTask = exports.compileTask = exports.transpileTask = void 0; const es = require("event-stream"); const fs = require("fs"); const gulp = require("gulp"); @@ -18,7 +18,6 @@ const ansiColors = require("ansi-colors"); const os = require("os"); const File = require("vinyl"); const task = require("./task"); -const tsb = require("./tsb"); const watch = require('./watch'); const reporter = (0, reporter_1.createReporter)(); function getTypeScriptCompilerOptions(src) { @@ -36,7 +35,7 @@ function getTypeScriptCompilerOptions(src) { return options; } function createCompile(src, build, emitError, transpileOnly) { - // const tsb = require('./tsb') as typeof import('./tsb'); + const tsb = require('./tsb'); const sourcemaps = require('gulp-sourcemaps'); const projectPath = path.join(__dirname, '../../', src, 'tsconfig.json'); const overrideOptions = { ...getTypeScriptCompilerOptions(src), inlineSources: Boolean(build) }; @@ -60,7 +59,7 @@ function createCompile(src, build, emitError, transpileOnly) { .pipe(noDeclarationsFilter) .pipe(build ? nls.nls() : es.through()) .pipe(noDeclarationsFilter.restore) - .pipe(sourcemaps.write('.', { + .pipe(transpileOnly ? es.through() : sourcemaps.write('.', { addComment: false, includeContent: !!build, sourceRoot: overrideOptions.sourceRoot @@ -74,12 +73,22 @@ function createCompile(src, build, emitError, transpileOnly) { }; return pipeline; } -function compileTask(src, out, build, transpileOnly) { +function transpileTask(src, out) { + return function () { + const transpile = createCompile(src, false, true, true); + const srcPipe = gulp.src(`${src}/**`, { base: `${src}` }); + return srcPipe + .pipe(transpile()) + .pipe(gulp.dest(out)); + }; +} +exports.transpileTask = transpileTask; +function compileTask(src, out, build) { return function () { if (os.totalmem() < 4000000000) { throw new Error('compilation requires 4GB of RAM'); } - const compile = createCompile(src, build, true, transpileOnly); + const compile = createCompile(src, build, true, false); const srcPipe = gulp.src(`${src}/**`, { base: `${src}` }); const generator = new MonacoGenerator(false); if (src === 'src') { diff --git a/build/lib/compilation.ts b/build/lib/compilation.ts index 5da243760b1..b737a5e8746 100644 --- a/build/lib/compilation.ts +++ b/build/lib/compilation.ts @@ -17,7 +17,6 @@ import * as os from 'os'; import ts = require('typescript'); import * as File from 'vinyl'; import * as task from './task'; -import * as tsb from './tsb'; const watch = require('./watch'); @@ -39,7 +38,7 @@ function getTypeScriptCompilerOptions(src: string): ts.CompilerOptions { } function createCompile(src: string, build: boolean, emitError: boolean, transpileOnly: boolean) { - // const tsb = require('./tsb') as typeof import('./tsb'); + const tsb = require('./tsb') as typeof import('./tsb'); const sourcemaps = require('gulp-sourcemaps') as typeof import('gulp-sourcemaps'); @@ -69,7 +68,7 @@ function createCompile(src: string, build: boolean, emitError: boolean, transpil .pipe(noDeclarationsFilter) .pipe(build ? nls.nls() : es.through()) .pipe(noDeclarationsFilter.restore) - .pipe(sourcemaps.write('.', { + .pipe(transpileOnly ? es.through() : sourcemaps.write('.', { addComment: false, includeContent: !!build, sourceRoot: overrideOptions.sourceRoot @@ -85,7 +84,20 @@ function createCompile(src: string, build: boolean, emitError: boolean, transpil return pipeline; } -export function compileTask(src: string, out: string, build: boolean, transpileOnly: boolean): () => NodeJS.ReadWriteStream { +export function transpileTask(src: string, out: string): () => NodeJS.ReadWriteStream { + + return function () { + + const transpile = createCompile(src, false, true, true); + const srcPipe = gulp.src(`${src}/**`, { base: `${src}` }); + + return srcPipe + .pipe(transpile()) + .pipe(gulp.dest(out)); + }; +} + +export function compileTask(src: string, out: string, build: boolean): () => NodeJS.ReadWriteStream { return function () { @@ -93,7 +105,7 @@ export function compileTask(src: string, out: string, build: boolean, transpileO throw new Error('compilation requires 4GB of RAM'); } - const compile = createCompile(src, build, true, transpileOnly); + const compile = createCompile(src, build, true, false); const srcPipe = gulp.src(`${src}/**`, { base: `${src}` }); const generator = new MonacoGenerator(false); if (src === 'src') {