使用Gulp任务运行Node服务器

3

我刚开始学gulp。

我需要使用gulp运行node服务器,但是不使用任何插件。

这个可能吗?

如果不能,那在gulp系统中最好的插件是什么?

3个回答

7
你应该尝试使用gulp-nodemon插件。它是一个有用的用于与Node开发相关的插件。
// Gulpfile.js
var gulp = require('gulp')
  , nodemon = require('gulp-nodemon')
  , jshint = require('gulp-jshint')

gulp.task('lint', function () {
  gulp.src('./**/*.js')
    .pipe(jshint())
})

gulp.task('develop', function () {
  nodemon({ script: 'server.js'
          , ext: 'html js'
          , ignore: ['ignored.js']
          , tasks: ['lint'] })
    .on('restart', function () {
      console.log('restarted!')
    })
})

如需更多详细信息,请访问此处

另外

如果您不想使用任何插件,可以像下面这样启动节点:

var gulp = require('gulp')
  , exec = require('child_process').exec

gulp.task('nodestart', function (cb) {
  exec('node bin/www.js', function (err, stdout, stderr) {
    console.log(stdout);
    console.log(stderr);
    cb(err);
  });
})

exec在exec('node bin/www.js',中是什么意思? - Mozak
你可以使用exec运行操作系统命令,例如“mkdir app”或“cd folder”或其他类似的命令。 - Furkan Başaran
exec = require('child_process').exec - Andrew

3
有几个gulp插件可用。
  1. Nodemon (https://www.npmjs.com/package/gulp-nodemon)
  2. Express (https://www.npmjs.com/package/gulp-express)
  3. Develop Server (https://www.npmjs.com/package/gulp-develop-server)
如果您希望在没有任何插件的情况下启动节点服务器,可以尝试以下方法。
var exec = require('child_process').exec;

gulp.task('start', function (callback) {
    exec('node server/app.js', function (err, stdout, stderr) {
        console.log(stdout);
        console.log(stderr);
        callback(err);
    });
});

0

如果你在开发环境中,可以使用 gulp-supervisor

// Gulpfile.js
var gulp = require( "gulp" ),
    supervisor = require( "gulp-supervisor" );

gulp.task( "supervisor-simple", function() {
    supervisor( "test/fixture/server.js" );
} );

gulp.task( "supervisor-all", function() {
    supervisor( "test/fixture/server.js", {
        args: [],
        watch: [ "test" ],
        ignore: [ "tasks" ],
        pollInterval: 500,
        extensions: [ "js" ],
        exec: "node",
        debug: true,
        debugBrk: false,
        harmony: true,
        noRestartOn: false,
        forceWatch: true,
        quiet: false
    } );
} );

如果你正在生产环境中,我推荐使用 gulp pm2 插件和 gulp-connect-pm2


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接