@@ -19,6 +19,17 @@ var watchOptions = {
1919 interval : 1000
2020} ;
2121
22+ const getBaseHref = ( ) => {
23+ var minimist = require ( "minimist" ) ;
24+ // Arguments written in skewer-case can cause problems (unsure why), so stick to camelCase
25+ var options = minimist ( process . argv . slice ( 2 ) , {
26+ string : [ "baseHref" ] ,
27+ default : { baseHref : "/" }
28+ } ) ;
29+
30+ return options . baseHref ;
31+ } ;
32+
2233gulp . task ( "check-terriajs-dependencies" , function ( done ) {
2334 var appPackageJson = require ( "./package.json" ) ;
2435 var terriaPackageJson = require ( "terriajs/package.json" ) ;
@@ -70,33 +81,19 @@ gulp.task("write-version", function (done) {
7081 done ( ) ;
7182} ) ;
7283
73- gulp . task ( "render-index" , function renderIndex ( done ) {
74- var ejs = require ( "ejs" ) ;
75- var minimist = require ( "minimist" ) ;
76- // Arguments written in skewer-case can cause problems (unsure why), so stick to camelCase
77- var options = minimist ( process . argv . slice ( 2 ) , {
78- string : [ "baseHref" ] ,
79- default : { baseHref : "/" }
80- } ) ;
81-
82- var index = fs . readFileSync ( "wwwroot/index.ejs" , "utf8" ) ;
83- var indexResult = ejs . render ( index , { baseHref : options . baseHref } ) ;
84-
85- fs . writeFileSync ( path . join ( "wwwroot" , "index.html" ) , indexResult ) ;
86- done ( ) ;
87- } ) ;
88-
8984gulp . task (
9085 "build-app" ,
9186 gulp . parallel (
92- "render-index" ,
9387 gulp . series (
9488 "check-terriajs-dependencies" ,
9589 "write-version" ,
9690 function buildApp ( done ) {
9791 var runWebpack = require ( "terriajs/buildprocess/runWebpack.js" ) ;
9892 var webpack = require ( "webpack" ) ;
99- var webpackConfig = require ( "./buildprocess/webpack.config.js" ) ( true ) ;
93+ var webpackConfig = require ( "./buildprocess/webpack.config.js" ) ( {
94+ devMode : true ,
95+ baseHref : getBaseHref ( )
96+ } ) ;
10097
10198 checkForDuplicateCesium ( ) ;
10299
@@ -109,14 +106,16 @@ gulp.task(
109106gulp . task (
110107 "release-app" ,
111108 gulp . parallel (
112- "render-index" ,
113109 gulp . series (
114110 "check-terriajs-dependencies" ,
115111 "write-version" ,
116112 function releaseApp ( done ) {
117113 var runWebpack = require ( "terriajs/buildprocess/runWebpack.js" ) ;
118114 var webpack = require ( "webpack" ) ;
119- var webpackConfig = require ( "./buildprocess/webpack.config.js" ) ( false ) ;
115+ var webpackConfig = require ( "./buildprocess/webpack.config.js" ) ( {
116+ devMode : false ,
117+ baseHref : getBaseHref ( )
118+ } ) ;
120119
121120 checkForDuplicateCesium ( ) ;
122121
@@ -132,25 +131,17 @@ gulp.task(
132131 )
133132) ;
134133
135- gulp . task (
136- "watch-render-index" ,
137- gulp . series ( "render-index" , function watchRenderIndex ( ) {
138- gulp . watch ( [ "wwwroot/index.ejs" ] , gulp . series ( "render-index" ) ) ;
139- } )
140- ) ;
141-
142134gulp . task (
143135 "watch-app" ,
144136 gulp . parallel (
145- "watch-render-index" ,
146137 gulp . series ( "check-terriajs-dependencies" , function watchApp ( done ) {
147138 var fs = require ( "fs" ) ;
148139 var watchWebpack = require ( "terriajs/buildprocess/watchWebpack" ) ;
149140 var webpack = require ( "webpack" ) ;
150- var webpackConfig = require ( "./buildprocess/webpack.config.js" ) (
151- true ,
152- false
153- ) ;
141+ var webpackConfig = require ( "./buildprocess/webpack.config.js" ) ( {
142+ devMode : true ,
143+ baseHref : getBaseHref ( )
144+ } ) ;
154145
155146 checkForDuplicateCesium ( ) ;
156147
@@ -290,10 +281,24 @@ gulp.task("terriajs-server", terriajsServerGulpTask(3001));
290281gulp . task ( "build" , gulp . series ( "copy-terriajs-assets" , "build-app" ) ) ;
291282gulp . task ( "release" , gulp . series ( "copy-terriajs-assets" , "release-app" ) ) ;
292283gulp . task ( "watch" , gulp . parallel ( "watch-terriajs-assets" , "watch-app" ) ) ;
293- // Run render-index before starting terriajs-server because terriajs-server won't
294- // start if index.html isn't present
284+ // Simple task that waits for index.html then starts server
295285gulp . task (
296286 "dev" ,
297- gulp . parallel ( gulp . series ( "render-index" , "terriajs-server" ) , "watch" )
287+ gulp . parallel ( "watch" , function startServerWhenReady ( done ) {
288+ const indexFile = path . join ( __dirname , "wwwroot" , "index.html" ) ;
289+
290+ if ( fs . existsSync ( indexFile ) ) {
291+ terriajsServerGulpTask ( 3001 ) ( done ) ;
292+ return ;
293+ }
294+ var watcher = gulp . watch (
295+ path . join ( __dirname , "wwwroot" , "index.html" ) ,
296+ watchOptions
297+ ) ;
298+ watcher . on ( "add" , function ( ) {
299+ watcher . close ( ) ;
300+ terriajsServerGulpTask ( 3001 ) ( done ) ;
301+ } ) ;
302+ } )
298303) ;
299304gulp . task ( "default" , gulp . series ( "lint" , "build" ) ) ;
0 commit comments