我有一个基于yeoman的应用程序,我与grunt serve一起运行。
让这个应用程序一直运行是很重要的。我以前一直在使用它,它工作得很好,但它通常在特定的js文件上工作。而我想在grunt serve任务中使用它。
我发现了一个名为grunt-forever https://github.com/bustardcelly/grunt-forever的插件,但我不知道如何设置我的gruntfile.js来使用它来调用grunt serve命令。
我的grunt文件的服务器部分是由yeoman为angular应用程序生成的标准部分。详情如下:
grunt.registerTask('serve', function (target) {
if (target === 'dist') {
return grunt.task.run(['build', 'express:prod', 'open', 'express-keepalive']);
}
grunt.task.run([
'clean:server',
'bower-install',
'concurrent:server',
'autoprefixer',
'express:dev',
'open',
'watch'
]);
});有人知道如何使用grunt-forever来调用该命令吗?
发布于 2015-05-08 16:44:14
我今天正试图弄清楚这一点,在我发现这一点的路上偶然发现了这篇文章。
我对这一切仍然是个新手,但我得出的结论是,grunt更多地用于开发任务,而不推荐用于生产。(在这一点上,我可能错了)。
我的主要缺陷是尝试使用grunt (并且不能解出魔法咒语),然后一旦我发现我应该直接使用node,让路径正常工作。
这是我最后为我的应用程序所做的,它是用DaftMonk的生成器-angular-fullstack生成的:
sudo npm install forever forever-service -g
cd ~/<project directory>/server
sudo forever-service install <service name> -s /<full path to project directory>/server/app.js -e "PATH=/usr/local/bin:\$PATH" --start为了验证正在发生的事情:
tail -f /var/logs/<service name>.log发布于 2015-05-22 21:03:37
这是我的配置,据我检查,它是有效的。它能够从简单的错误中恢复并重新启动服务器。
//load the forever task
grunt.loadNpmTasks('grunt-forever');
// Define the configuration for all the tasks
grunt.initConfig({
....
forever: {
server1:{
options: {
index: 'server/app.js'
}
}
},
});
...
grunt.registerTask('serve', function (target) {
if (target === 'dist') {
return grunt.task.run(['build', 'env:all', 'forever:server1:start', 'express:prod', 'wait', 'open', 'express-keepalive']);
}
});附言:我读了你的另一个问题,我想你一定也问过这个问题。
https://stackoverflow.com/questions/29394987
复制相似问题