2015-04-23 49 views
4

在腳手架生成的項目中,使用yo angular fullstack我通常使用grunt(我不是專家)使用grunt啓動應用程序。從咕嚕聲中選擇不同的喲角度全棧項目環境?

grunt 

grunt serve 

等。據我所知,我有三種不同的環境(開發,測試,生產)。每次我需要更改時,我必須轉到主文件,更改正確的行(默認爲「開發」)。

如何從終端中選擇其中之一?我完全確信,必須有辦法做到這一點從咕嚕......

我能想象它必須像

grunt serve --env:prod 

grunt serve --test 

grunt serve development 

我已經嘗試了所有的人,但沒有,我已經花有一段時間想從Gruntfile中找出它,但我找不到谷歌搜索。

有誰知道該怎麼做?任何幫助,將不勝感激

回答

1

你可以像這樣開始你的應用NODE_ENV=production grunt和環境變量只是在這次執行生產。如果你想設置環境變量,你可以做

> export NODE_ENV=production 
> grunt 

而你的環境變量將保持生產,直到你改變它爲另一個環境。

+1

謝謝,感激不盡。事實上,這是我能看到的最好的解決辦法! – ackuser

+0

我剛剛發現它可能是grunt serve的答案:dist..雖然我需要某人確認。我會試試 – ackuser

1

serve任務。有不同的目標。您可以通過追加冒號和目標名稱來設置目標。

發展

grunt serve 

分配(生產)

grunt serve:dist 

調試

grunt serve:debug 

通過設置目標,Grunt將運行不同的任務。

serve任務

grunt.registerTask('serve', function (target) { 
    if (target === 'dist') { 
    return grunt.task.run(['build', 'env:all', 'env:prod', 'express:prod', 'wait', 'open', 'express-keepalive']); 
    } 

    if (target === 'debug') { 
    return grunt.task.run([ 
     'clean:server', 
     'env:all',<% if(filters.stylus) { %> 
     'injector:stylus', <% } %><% if(filters.less) { %> 
     'injector:less', <% } %><% if(filters.sass) { %> 
     'injector:sass', <% } %> 
     'concurrent:server', 
     'injector', 
     'wiredep', 
     'autoprefixer', 
     'concurrent:debug' 
    ]); 
    } 

    grunt.task.run([ 
    'clean:server', 
    'env:all',<% if(filters.stylus) { %> 
    'injector:stylus', <% } %><% if(filters.less) { %> 
    'injector:less', <% } %><% if(filters.sass) { %> 
    'injector:sass', <% } %> 
    'concurrent:server', 
    'injector', 
    'wiredep', 
    'autoprefixer', 
    'express:dev', 
    'wait', 
    'open', 
    'watch' 
    ]); 
}); 
+0

@ackuser我的解決方案是否適合您? –