【问题标题】:Run node server using gulp task使用 gulp 任务运行节点服务器
【发布时间】:2017-09-04 18:27:25
【问题描述】:

我是 gulp 的新手。

我需要使用 gulp 运行节点服务器,但不使用它的任何插件。

有可能吗?

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

【问题讨论】:

    标签: node.js gulp


    【解决方案1】:

    你应该试试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!')
        })
    })
    

    更多详情您可以访问here

    还有

    如果你不想使用任何插件,你可以在没有它的情况下启动节点,如下所示:

    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('node bin/www.js',?
    • 您可以使用 exec 运行 os 命令,例如“mkdir app”或“cd 文件夹”或其他类似的东西。
    • exec = require('child_process').exec
    【解决方案2】:

    gulp 有几个可用的插件。

    1. Nodemon (https://www.npmjs.com/package/gulp-nodemon)
    2. 快递(https://www.npmjs.com/package/gulp-express)
    3. 开发服务器 (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);
        });
    });
    

    【讨论】:

      【解决方案3】:

      如果你在开发环境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 plugin, gulp-connect-pm2

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-11
        相关资源
        最近更新 更多