2015-04-23 32 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我的解决方案是否适合您? –