使用NPM'pre'脚本

使用NPM,我们可以使用预编译脚本来运行预钩(也有后钩)。

在运行我的npm脚本之前,我想运行'gulp default':

"scripts":{ "prestart_dev": "gulp default", "start_dev": "node ./bin/www" } 

我运行这个:

 npm run start_dev 

如预期的那样,prestart_dev运行,但是它不启动start_dev,它只是坐在那里。 任何想法我可以做什么来解决它? 似乎应该按原样工作。

我的Gulp默认任务如下所示:

 gulp.task('default', function () { gulp.run('build_requirejs_pipe'); gulp.watch('public/static/app/js/controllers/**/*.js', function () { gulp.run('build_requirejs_pipe'); }); }); 

(这可能是我的默认任务需要返回一些东西?)

所以我的直觉是, gulp default保持在前台,因为它会一直监视文件系统的变化,直到明确停止。 因此,从npm的angular度来看, prestart_dev永远不会完成,因此不会继续执行start_dev

通常为了开发,大多数开发者希望在一个terminal中在前台运行他们的服务器进程,而在另一个terminal中也在前台运行所有基于手表的公用程序。 你可能会考虑把这两件事情分开,而不是把它们联系起来。