问题
Goal:
I am trying to run a watch
task in my Gruntfile.js
as a daemon.
Normally, I would execute this script like: grunt watch
.
Gruntfile.js:
module.exports = function(grunt) {
grunt.initConfig({
concat: {
options: {
separator: ''
},
dist: {
src: ['static/js/**/*.js'],
dest: 'app.js'
}
},
watch: {
files: ['<%= concat.dist.src %>'],
tasks: ['concat']
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
};
Question:
How do I spawn grunt watch
as a daemon?
Update:
It appears as though considerations for this have already been made:
https://github.com/shama/grunt-hub#watching-forever
https://github.com/shama/grunt-hub/issues/3
回答1:
you can use https://github.com/nodejitsu/forever exmaple
forever start gruntstart.js
gruntstart.js:
var exec = require('child_process').exec;
exec('grunt watch > log/grunt.log',
function (error, stdout, stderr) {
console.log('stdout: ' + stdout);
console.log('stderr: ' + stderr);
if (error !== null) {
console.log('exec error: ' + error);
}
});
回答2:
I'm a newbie in javascript, but I solved this problem with: tmux
- One pane for simple operations like git and etc.
- Other is for "grunt watch"
Even if I close the console tmux will go on with watching :D
http://i.imgur.com/9L04OGe.jpg
来源:https://stackoverflow.com/questions/15622116/grunt-js-watch-forever