Variables d'environnement NodeJS dans Grunt

je déplace mon projet de simplement node server.js en utilisant Grunt.

j'avais l'habitude d'exécuter mon application directement à partir de webstorm, et les variables d'environnement étaient configurées pour moi.

Comment puis-je obtenir la même chose en Grunt?

j'ai besoin soit d'exécuter grunt depuis webstorm (windows), soit de configurer env vars lors de l'exécution de grunt (explicitement)

ce n'est pas un problème lors d'un déploiement car heroku s'occupe déjà de régler mes var.

26
demandé sur bevacqua 2013-03-21 21:28:20

1 réponses

utilisez le plugin grunt-env:https://npmjs.org/package/grunt-env

et définissez votre config:

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

dans votre gruntfile vous aurez probablement de définir des valeurs par défaut:

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

donc si vous lancez 'grunt default' au début, vos env-vars sont définis, et ensuite 'another-task' est lancé

si vous voulez spécifier l'environnement actuel via l'option en ligne de commande, vous pouvez utiliser grunt.option:

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

dans cet exemple, si vous appelez votre tâche grunt --environment=production la production sera définie, sinon le développement sera défini

48
répondu hereandnow78 2016-08-24 07:03:34