2015-04-01 85 views
2

我有一個yeoman基於角度的應用程序,我使用grunt serve運行。如何讓使用grunt永久yeoman角應用程序永生?

保持此應用程序始終運行至關重要。我以前永遠用過,它的運行良好,但它通常適用於特定的js文件。而我想用它與grunt serve任務。

我發現了一個名爲grunt-forever的插件 - https://github.com/bustardcelly/grunt-forever - 但我不知道如何設置我的gruntfile.js來使用它來調用grunt serve命令。

我的grunt文件的服務器部分是yeoman爲角度應用程序生成的標準服務器部分。它如下 -

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來調用該命令?

回答

0

今天我試圖自己弄清楚這件事,並且在找出結果的過程中遇到了這篇文章。

我對這一切還是有點新的,但得出的結論是,grunt更適用於開發任務,而不推薦用於生產。 (我可能在這個上是錯的)。

我曾嘗試使用grunt(並且無法計算出魔法咒語)的主要陷阱,然後一旦我發現我應該直接使用節點,使路徑正常工作。

這是我做到底,與DaftMonk的發電機角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 
0

這裏是我的配置,其正在工作,據我檢查。它能夠從簡單的錯誤中恢復並重新啓動服務器。

//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']); 
    } 
}); 

PS:我看了你的其他自耕農的問題,我覺得你必須問這個問題爲好。