2

残念ながら、grunt-contrib-watchgrunt-contrib-connectはうまく機能していないようです。

grunt-contrib-connect のreadmeには次のように書かれています。

このサーバーは、grunt が実行されている間のみ実行されることに注意してください。grunt のタスクが完了すると、Web サーバーが停止します。この動作は keepalive オプションで変更でき、grunt connect::keepalive などのタスクを実行することでアドホックに有効にすることができます。

罰金。しかし、監視タスクを接続サーバーと並行して実行したい場合はどうすればよいでしょうか? そのようです:

connect: {
  server: {
    options: {
      port: 8000,
      hostname: 'localhost',
      keepalive: true
    }
  }
},
watch: {
  options: {
    livereload: true
  },
  files: ['**'],
  tasks: ['connect'],
}

ここではconnect、ファイルが変更されたときにタスクが実行されます。connect のオプションを true に設定すると、grunt-contrib-watch は技術的にタスクを完了していないkeepaliveため監視を停止します。オプションを偽ると、接続サーバーはタスクの完了後に停止します。keepalive

はい、コマンドを実行できました...

$ grunt connect
$ grunt watch

...別々のシェルですが、1 つのコマンドでそれらを実行する方法はありませんか?

4

2 に答える 2

0

ウォッチと nodejs ランチャーを 1 つのタスクにカプセル化するgrunt-nodemonを使用します。

nodemon: {
  dev: {
    script: 'app.js',
    options: {
      ignore: [
        'node_modules/**',
        'public/**'
      ],
      ext: 'js'
    }
  }
}

次に、次のように実行します。

$ grunt nodemon:dev

現在、nodemon は nodejs を使用して app.js スクリプトのみを起動するため、静的な静的 Express サーバーをロードするには、小さな app.js が必要になります。

var express = require('express');
var server = express(); // better instead
server.configure(function(){
  server.use(express.static(__dirname + '/public'));
});

server.listen(3000);
于 2014-11-27T00:35:18.360 に答える