使用gulp运行命令以启动Node.js服务器

因此,我使用的是gulp-exec(https://www.npmjs.com/package/gulp-

exec),在阅读了一些文档后,它提到如果我只想运行命令,则不应使用该插件,利用我在下面尝试使用的代码。

var    exec = require('child_process').exec;

gulp.task('server', function (cb) {

exec('start server', function (err, stdout, stderr) {

.pipe(stdin(['node lib/app.js', 'mongod --dbpath ./data']))

console.log(stdout);

console.log(stderr);

cb(err);

});

})

我试图让gulp启动我的Node.js服务器和MongoDB。这就是我想要完成的。在我的终端窗口中,它抱怨我

.pipe

但是,我对gulp并不陌生,我认为那是您如何通过命令/任务进行传递的方式。任何帮助表示赞赏,谢谢。

回答:

gulp.task('server', function (cb) {

exec('node lib/app.js', function (err, stdout, stderr) {

console.log(stdout);

console.log(stderr);

cb(err);

});

exec('mongod --dbpath ./data', function (err, stdout, stderr) {

console.log(stdout);

console.log(stderr);

cb(err);

});

})

供以后参考,以及是否有人遇到此问题。

上面的代码解决了我的问题。因此,基本上,我发现上述内容是它自己的功能,因此不需要:

.pipe

我以为这段代码:

exec('start server', function (err, stdout, stderr) {

是我正在运行的任务的名称,但这实际上是我将要运行的命令。因此,我将其更改为指向运行我的服务器的app.js,并做了同样的操作以指向我的MongoDB。

编辑

正如下面提到的@ N1mr0d,没有服务器输出,一种更好的运行服务器的方法是使用nodemon。您可以nodemon

server.js像奔跑一样简单地奔跑node server.js

下面的代码段是我在gulp任务中使用nodemon现在运行服务器的内容:

// start our server and listen for changes

gulp.task('server', function() {

// configure nodemon

nodemon({

// the script to run the app

script: 'server.js',

// this listens to changes in any of these files/routes and restarts the application

watch: ["server.js", "app.js", "routes/", 'public/*', 'public/*/**'],

ext: 'js'

// Below i'm using es6 arrow functions but you can remove the arrow and have it a normal .on('restart', function() { // then place your stuff in here }

}).on('restart', () => {

gulp.src('server.js')

// I've added notify, which displays a message on restart. Was more for me to test so you can remove this

.pipe(notify('Running the start tasks and stuff'));

});

});

链接安装Nodemon:https

://www.npmjs.com/package/gulp-nodemon

以上是 使用gulp运行命令以启动Node.js服务器 的全部内容, 来源链接: utcz.com/qa/431436.html

回到顶部