@@ -10,13 +10,8 @@ const insert = require("gulp-insert");
1010const { append } = require ( "gulp-insert" ) ;
1111const sourcemaps = require ( "gulp-sourcemaps" ) ;
1212const del = require ( "del" ) ;
13- const browserify = require ( "browserify" ) ;
14- const through2 = require ( "through2" ) ;
1513const fold = require ( "travis-fold" ) ;
1614const rename = require ( "gulp-rename" ) ;
17- const convertMap = require ( "convert-source-map" ) ;
18- const sorcery = require ( "sorcery" ) ;
19- const Vinyl = require ( "vinyl" ) ;
2015const mkdirp = require ( "./scripts/build/mkdirp" ) ;
2116const gulp = require ( "./scripts/build/gulp" ) ;
2217const getDirSize = require ( "./scripts/build/getDirSize" ) ;
@@ -28,7 +23,7 @@ const getDiffTool = require("./scripts/build/getDiffTool");
2823const baselineAccept = require ( "./scripts/build/baselineAccept" ) ;
2924const cmdLineOptions = require ( "./scripts/build/options" ) ;
3025const exec = require ( "./scripts/build/exec" ) ;
31- const _debugMode = require ( "./scripts/build/debugMode " ) ;
26+ const browserify = require ( "./scripts/build/browserify " ) ;
3227const { libraryTargets, generateLibs } = require ( "./scripts/build/lib" ) ;
3328const { runConsoleTests, cleanTestDirs, writeTestConfigFile, refBaseline, localBaseline, refRwcBaseline, localRwcBaseline } = require ( "./scripts/build/tests" ) ;
3429
@@ -72,7 +67,7 @@ gulp.task(
7267 "publish-nightly" ,
7368 "Runs `npm publish --tag next` to create a new nightly build on npm" ,
7469 [ "LKG" ] ,
75- ( ) => runSequence ( "clean" , "useDebugMode" , " runtests-parallel",
70+ ( ) => runSequence ( "clean" , "runtests-parallel" ,
7671 ( ) => exec ( "npm" , [ "publish" , "--tag" , "next" ] ) ) ) ;
7772
7873const importDefinitelyTypedTestsProject = "scripts/importDefinitelyTypedTests/tsconfig.json" ;
@@ -187,6 +182,10 @@ const tscProject = "src/tsc/tsconfig.json";
187182const tscJs = "built/local/tsc.js" ;
188183gulp . task ( tscJs , /*help*/ false , [ typescriptServicesJs ] , ( ) => project . compile ( tscProject , { typescript : "built" } ) ) ;
189184
185+ const tscReleaseProject = "src/tsc/tsconfig.release.json" ;
186+ const tscReleaseJs = "built/local/tsc.release.js" ;
187+ gulp . task ( tscReleaseJs , /*help*/ false , ( ) => project . compile ( tscReleaseProject ) ) ;
188+
190189const cancellationTokenProject = "src/cancellationToken/tsconfig.json" ;
191190const cancellationTokenJs = "built/local/cancellationToken.js" ;
192191gulp . task ( cancellationTokenJs , /*help*/ false , [ typescriptServicesJs ] , ( ) => project . compile ( cancellationTokenProject , { typescript : "built" } ) ) ;
@@ -258,9 +257,9 @@ gulp.task(
258257 "Generates a Markdown version of the Language Specification" ,
259258 [ specMd ] ) ;
260259
261- gulp . task ( "produce-LKG" , /*help*/ false , [ "scripts" , "local" , cancellationTokenJs , typingsInstallerJs , watchGuardJs ] , ( ) => {
260+ gulp . task ( "produce-LKG" , /*help*/ false , [ "scripts" , "local" , cancellationTokenJs , typingsInstallerJs , watchGuardJs , tscReleaseJs ] , ( ) => {
262261 const expectedFiles = [
263- tscJs ,
262+ tscReleaseJs ,
264263 typescriptServicesJs ,
265264 tsserverJs ,
266265 typescriptJs ,
@@ -289,7 +288,7 @@ gulp.task("produce-LKG", /*help*/ false, ["scripts", "local", cancellationTokenJ
289288gulp . task (
290289 "LKG" ,
291290 "Makes a new LKG out of the built js files" ,
292- ( ) => runSequence ( "clean-built" , "dontUseDebugMode" , " produce-LKG") ) ;
291+ ( ) => runSequence ( "clean-built" , "produce-LKG" ) ) ;
293292
294293// Task to build the tests infrastructure using the built compiler
295294const testRunnerProject = "src/testRunner/tsconfig.json" ;
@@ -301,11 +300,6 @@ gulp.task(
301300 "Builds the test infrastructure using the built compiler" ,
302301 [ runJs ] ) ;
303302
304- gulp . task (
305- "tests-debug" ,
306- "Builds the test sources and automation in debug mode" ,
307- ( ) => runSequence ( "useDebugMode" , "tests" ) ) ;
308-
309303gulp . task (
310304 "runtests-parallel" ,
311305 "Runs all the tests in parallel using the built run.js file. Optional arguments are: --t[ests]=category1|category2|... --d[ebug]=true." ,
@@ -325,77 +319,17 @@ gulp.task("clean:" + webTestServerJs, /*help*/ false, () => project.clean(webTes
325319
326320const bundlePath = path . resolve ( "built/local/bundle.js" ) ;
327321
328- // TODO(rbuckton): Clean up browserify logic
329322gulp . task (
330323 "browserify" ,
331324 "Runs browserify on run.js to produce a file suitable for running tests in the browser" ,
332325 [ runJs ] ,
333- ( done ) => {
334- /** @type {* } */
335- let originalMap ;
336- /** @type {string } */
337- let prebundledContent ;
338- browserify ( gulp . src ( [ runJs ] )
339- . pipe ( newer ( bundlePath ) )
340- . pipe ( sourcemaps . init ( { loadMaps : true } ) )
341- . pipe ( through2 . obj ( ( file , enc , next ) => {
342- if ( originalMap ) {
343- throw new Error ( "Should only recieve one file!" ) ;
344- }
345- log ( `Saving sourcemaps for ${ file . path } ` ) ;
346- originalMap = file . sourceMap ;
347- prebundledContent = file . contents . toString ( ) ;
348- // Make paths absolute to help sorcery deal with all the terrible paths being thrown around
349- originalMap . sources = originalMap . sources . map ( s => path . resolve ( path . join ( "src/harness" , s ) ) ) ;
350- // browserify names input files this when they are streamed in, so this is what it puts in the sourcemap
351- originalMap . file = "built/local/_stream_0.js" ;
352-
353- next ( /*err*/ undefined , file . contents ) ;
354- } ) )
355- . on ( "error" , err => {
356- return done ( err ) ;
357- } ) , { debug : true , basedir : __dirname } ) // Attach error handler to inner stream
358- . bundle ( ( err , contents ) => {
359- if ( err ) {
360- if ( err . message . match ( / C a n n o t f i n d m o d u l e ' .* _ s t r e a m _ 0 .j s ' / ) ) {
361- return done ( ) ; // Browserify errors when we pass in no files when `newer` filters the input, we should count that as a success, though
362- }
363- return done ( err ) ;
364- }
365- const stringContent = contents . toString ( ) ;
366- const file = new Vinyl ( { contents, path : bundlePath } ) ;
367- log ( `Fixing sourcemaps for ${ file . path } ` ) ;
368- // assumes contents is a Buffer, since that's what browserify yields
369- const maps = convertMap . fromSource ( stringContent ) . toObject ( ) ;
370- delete maps . sourceRoot ;
371- maps . sources = maps . sources . map ( s => path . resolve ( s === "_stream_0.js" ? "built/local/_stream_0.js" : s ) ) ;
372- // Strip browserify's inline comments away (could probably just let sorcery do this, but then we couldn't fix the paths)
373- file . contents = new Buffer ( convertMap . removeComments ( stringContent ) ) ;
374- const chain = sorcery . loadSync ( bundlePath , {
375- content : {
376- "built/local/_stream_0.js" : prebundledContent ,
377- [ bundlePath ] : stringContent
378- } ,
379- sourcemaps : {
380- "built/local/_stream_0.js" : originalMap ,
381- [ bundlePath ] : maps ,
382- "node_modules/source-map-support/source-map-support.js" : undefined ,
383- }
384- } ) ;
385- const finalMap = chain . apply ( ) ;
386- file . sourceMap = finalMap ;
387-
388- const stream = through2 . obj ( ( file , enc , callback ) => {
389- return callback ( /*err*/ undefined , file ) ;
390- } ) ;
391- stream . pipe ( sourcemaps . write ( "." , { includeContent : false } ) )
392- . pipe ( gulp . dest ( "." ) )
393- . on ( "end" , done )
394- . on ( "error" , done ) ;
395- stream . write ( file ) ;
396- stream . end ( ) ;
397- } ) ;
398- } ) ;
326+ ( ) => gulp . src ( [ runJs ] , { base : "built/local" } )
327+ . pipe ( newer ( bundlePath ) )
328+ . pipe ( sourcemaps . init ( { loadMaps : true } ) )
329+ . pipe ( browserify ( ) )
330+ . pipe ( rename ( "bundle.js" ) )
331+ . pipe ( sourcemaps . write ( "." , /**@type {* }*/ ( { includeContent : false , destPath : "built/local" } ) ) )
332+ . pipe ( gulp . dest ( "built/local" ) ) ) ;
399333
400334gulp . task (
401335 "runtests-browser" ,
0 commit comments