30

我正在将我的项目从简单node server.js转变为使用 Grunt。

我曾经直接从 webstorm 运行我的应用程序,并且会为我设置环境变量。

我怎样才能在 Grunt 中达到同样的效果?

我需要从 webstorm (windows) 运行 grunt,或者在运行 grunt (显式) 时设置环境变量

部署时这不是问题,因为 heroku 已经负责设置我的环境变量。

4

1 回答 1

53

使用 grunt-env 插件:https ://npmjs.org/package/grunt-env

并设置您的配置:

grunt.initConfig({
  env : {
    options : {
      //Shared Options Hash
    },
    dev : {
      NODE_ENV : 'development',
      DEST     : 'temp'
    }
  },
  'another-task': {}
});

在您的 gruntfile 中,您可能会定义一些默认任务:

grunt.registerTask('default', ['env', 'another-task']);

所以如果你首先运行'grunt default',你的env-vars被设置,然后'another-task'运行

如果你想通过命令行选项指定当前环境,你可以使用 grunt.option:

grunt.initConfig({
  env : {
    options : {
      //Shared Options Hash
    },
    dev : {
      NODE_ENV : grunt.option('environment') || 'development',
      DEST     : 'temp'
    }
  },

在这个例子中,如果你调用你的 grunt 任务,--environment=production将设置生产,否则将设置开发

于 2013-03-27T10:35:32.877 回答