从咕噜声中选择yo angular fullstack项目的不同环境?

时间:2015-04-23 08:51:46

标签: angularjs node.js gruntjs angular-fullstack yo

在使用yo angular fullstack的脚手架生成的项目中,我通常使用grunt使用grunt启动应用程序(我不是专家)。

示例

grunt 

grunt serve

等等。

据我所知,我有三种不同的环境(开发,测试,生产)。每次我需要更改时,我必须转到主文件更改正确的行(默认为开发)。

如何从终端中选择其中一个?我完全相信必须有办法从咕噜声......

我可以想象它必须像

grunt serve --env:prod

grunt serve --test

grunt serve development

我已经尝试了所有这些,但没有,我花了一些时间试图从Gruntfile中找出它,但我找不到谷歌搜索。

有谁知道怎么做?任何帮助将不胜感激

2 个答案:

答案 0 :(得分:1)

您可以像这样NODE_ENV=production grunt启动您的应用,并且环境变量仅在此执行中生成。如果要设置环境变量,可以执行

> export NODE_ENV=production
> grunt

在您为其他环境更改环境变量之前,您的环境变量将保持生产状态。

答案 1 :(得分: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'
  ]);
});