Aug*_*ger 28 watch spawn node.js gruntjs
我觉得我错过了什么.
这是我想要实现的目标:
有一个执行我的grunt任务server.js并且watch并行运行任务.我觉得这正是grunt设计的任务之一,但我无法实现这种配置.
其中,我读过这个: 通过Grunt运行Node应用程序, 但我仍然无法做到.
这是我的Gruntfile.js:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
watch: {
scripts: {
files: ['*.js'],
tasks: ['start'],
options: {
nospawn: true
}
}
}
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.registerTask('start', function() {
grunt.util.spawn({
cmd: 'node',
args: ['server.js']
});
grunt.task.run('watch');
});
grunt.registerTask('default', 'start');
};
Run Code Online (Sandbox Code Playgroud)
我"grunt-contrib-watch": "~0.3.1"应该是比grunt-contrib-watch@0.3.0前面提到的帖子更高的版本.
如果你能帮助我实现正确的配置,我将非常感激.但更多的是,我不明白为什么没有正式的grunt-contrib-nodemon-like包装和任务,因为我觉得使用grunt是另一个很好的理由(我真的很喜欢它作为工具!)
谢谢
nac*_*son 27
自写这篇文章以来,一个好人开发了这个.
我使用grunt.util.spawn来解决新进程时遇到了很多麻烦.他们会跑,但他们不会给我任何输出.也许你可以弄清楚我在这些文档中无法做到的事情.http://gruntjs.com/api/grunt.util#grunt.util.spawn
node server.js每次文件更改时都可以反复调用.它将在第一次工作,因为它真正起作用,您必须将服务器作为子进程进行管理,在后续文件更改时终止并重新启动它.对于registerTask参数尝试这个,只是为了看看你是否可以在当前的实现中使用某些东西.
http://gruntjs.com/api/grunt.task#grunt.task.registertask
它需要(taskName, description, taskFunction)这样:
grunt.registerTask('start', 'My start task description', function() {
grunt.util.spawn({
cmd: 'node',
args: ['server.js']
});
grunt.task.run('watch');
});
Run Code Online (Sandbox Code Playgroud)
这可能至少让您watch在node server.js文件第一次更改时运行.
这就是我要做的事情.
要么只是按$ nodemon server.js原样使用nodemon
要么...
他将服务器作为子进程管理,可能就是您正在寻找的.
要么...
得到咕噜声
npm install grunt-shell --save-dev
并使用它为您运行nodemon:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
serverFile: 'server.js',
shell: {
nodemon: {
command: 'nodemon <%= serverFile %>',
options: {
stdout: true,
stderr: true
}
}
},
watch: { /* nothing to do in watch anymore */ }
});
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-shell');
grunt.registerTask('default', 'shell:nodemon');
};
Run Code Online (Sandbox Code Playgroud)
$ grunt shell:nodemon
我衷心希望有所帮助.祝好运!
| 归档时间: |
|
| 查看次数: |
16487 次 |
| 最近记录: |