4

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

例子

grunt 

grunt serve

等等。

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

如何从终端中选择其中之一?我完全确定必须有办法从咕噜声中做到这一点......

我可以想象它必须是这样的

grunt serve --env:prod

grunt serve --test

grunt serve development

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

有谁知道这是怎么做到的吗?任何帮助,将不胜感激

4

2 回答 2

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'
  ]);
});
于 2015-04-23T10:51:13.833 回答
1

您可以像这样启动您的应用程序NODE_ENV=production grunt,并且环境变量在此执行中仅是生产环境变量。如果你想设置环境变量,你可以做

> export NODE_ENV=production
> grunt

并且您的环境变量将保留在生产环境中,直到您将其更改为另一个环境。

于 2015-04-23T09:48:08.003 回答