Convertir la siguiente secuencia de comandos npm para engullir tarea

Tengo la siguiente secuencia de comandos de npm que quiero convertir para engullir tarea

"scripts": { "lint": "eslint .", "start": "npm run build:sdk && node .", "posttest": "npm run lint && nsp check", "build:sdk": "./node_modules/.bin/lb-sdk server/server.js ./client/src/app/shared/sdk" }, 

Ahora quiero que una tarea truculenta tenga la misma funcionalidad que npm start. pero no puedo agrupar las tareas ya que ejecutará la comstackción de ejecución de npm: sdk y luego el nodo.

Esto es lo que he hecho hasta ahora.

 gulp.task('default', function() { gulp.run('sdk'); gulp.run('server'); gulp.watch(['./common/models/*.js'], function() { gulp.run('server'); }); }); gulp.task('server', function() { if (node) node.kill(); node = spawn('node', ['server/server.js'], {stdio: 'inherit'}); node.on('close', function(code) { if (code === 8) { gulp.log('Error detected, waiting for changes...'); } }); }); gulp.task('sdk', function() { spawn('./node_modules/.bin/lb-sdk server/server.js ./client/src/app/shared/sdk'); }); 

Rastro de stack

 Error: spawn ./node_modules/.bin/lb-sdk server/server.js ./client/src/app/shared/sdk ENOENT at exports._errnoException (util.js:1050:11) at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32) at onErrorNT (internal/child_process.js:367:16) at _combinedTickCallback (internal/process/next_tick.js:80:11) at process._tickCallback (internal/process/next_tick.js:104:9) at Module.runMain (module.js:607:11) at run (bootstrap_node.js:423:7) at startup (bootstrap_node.js:147:9) at bootstrap_node.js:538:3 

Hay dos problemas en su código. Primero, tienes que pasar argumentos al proceso generado como una matriz.

 gulp.task('sdk', function() { spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q']); }); 

Segundo, estás utilizando gulp.run('sdk'); , el cual es depricado. Debe estar viendo esto en su consola, cuando arregle el problema anterior. Para eso tienes que pasar dependecies a tu tarea default y también a gulp.watch()

 gulp.task('default', ['sdk', 'server'] , function() { gulp.watch(['./common/models/*.js'], ['server']); }); 

introduzca la descripción de la imagen aquí

Completar archivo Gulp

 var gulp = require('gulp'); var {spawn} = require('child_process'); var node = null; gulp.task('default', ['sdk', 'server'], function() { gulp.watch(['./common/models/*.js'], ['server']); }); gulp.task('server', function() { if (node) node.kill(); node = spawn('node', ['server/server.js'], {stdio: 'inherit'}); node.on('close', function(code) { if (code === 8) { gulp.log('Error detected, waiting for changes...'); } }); }); gulp.task('sdk', function() { spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q']); });