server/bundler/css-hot-reload.js
function spawnMake() {
		// If a build is already in progress schedule another build for later
		if ( cssMake ) {
			scheduleBuild = true;
			return;
		}

		io.of( '/css-hot-reload' ).emit( 'css-hot-reload', { status: 'building' } );

		debug( 'spawning %o', 'npm run build-css' );
		cssMake = spawn( 'npm', [ 'run', 'build-css' ], {
			shell: true,
			cwd: ROOT_DIR,
			stdio: [ 'ignore', 'pipe', 'pipe' ],
		} );

		errors = '';
		cssMake.once( 'exit', onexit );
		cssMake.stdout.setEncoding( 'utf8' );
		cssMake.stderr.setEncoding( 'utf8' );
		cssMake.stdout.on( 'data', onstdout );
		cssMake.stderr.on( 'data', onstderr );
	}
function spawnMake() {
		// If a build is already in progress schedule another build for later
		if ( cssMake ) {
			scheduleBuild = true;
			return;
		}

		io.of( '/css-hot-reload' ).emit( 'css-hot-reload', { status: 'building' } );

		debug( 'spawning %o', 'npm run build-css' );
		cssMake = spawn( 'npm', [ 'run', 'build-css' ], {
			shell: true,
			cwd: ROOT_DIR,
			stdio: [ 'ignore', 'pipe', 'pipe' ],
		} );

		errors = '';
		cssMake.once( 'exit', onexit );
		cssMake.stdout.setEncoding( 'utf8' );
		cssMake.stderr.setEncoding( 'utf8' );
		cssMake.stdout.on( 'data', onstdout );
		cssMake.stderr.on( 'data', onstderr );
	}
{ path, hash } dictionary