Grunt - 同时执行和监视应用程序

时间:2016-09-09 11:40:17

标签: javascript node.js gruntjs grunt-contrib-watch

我正在开发一个简单的节点应用程序,我遇到了这个名为grunt-cli的工具。

在介绍咕噜声之后,我计划将它与我的应用程序一起使用。

Gruntfile.js

module.exports = function(grunt){

    grunt.initConfig({
        execute: {
            target:{
                src: ['app.js']
            }
        },
        watch: {
            scrpits: {
                files: ['app.js'],
                tasks: ['execute'],
                options: {
                    spawn: false
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-execute');
    grunt.loadNpmTasks('grunt-contrib-watch');

    grunt.registerTask('default', ['execute', 'watch']);
};

的package.json

{
  "name": "exampleapp",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Priyank Thakkar",
  "license": "ISC",
  "dependencies": {
    "express": "^4.14.0",
    "grunt": "^0.4.1"
  },
  "devDependencies": {
    "grunt-contrib-watch": "^1.0.0",
    "grunt-execute": "^0.2.2"
  }
}

app.js

var express = require('express');

var app = express();

app.set('port', process.env.port || 3005);

app.listen(3005, function(){
   console.log('application started at http://localhost:' + app.get('port'));
});

运行执行后跟看是否正确?不知怎的,我觉得终端只停留在执行任务上,它没有看到应用程序中的变化。

1 个答案:

答案 0 :(得分:1)

你的咕噜执行目标是阻止观看并且永远不会结束。这两个任务需要在不同的线程中运行。

您可以使用类似grunt-concurrent的内容同时执行这两项任务: https://github.com/sindresorhus/grunt-concurrent