web-dev-qa-db-fra.com

Variables d'environnement NodeJS dans Grunt

Je déplace mon projet de simplement node server.js pour utiliser Grunt.

J'avais l'habitude d'exécuter mon application directement à partir de Webstorm, et des variables d'environnement seraient configurées pour moi.

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

J'ai besoin d'exécuter grunt à partir de Webstorm (Windows) ou de configurer des vars env lors de l'exécution de grunt (explicitement)

Ce n'est pas un problème lors du déploiement, car heroku s'occupe déjà de définir mes vars env.

28
bevacqua

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

et définissez votre configuration:

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

dans votre gruntfile, vous définirez probablement une tâche par défaut:

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

donc si vous exécutez "grunt default" au début, vos env-vars sont définies, puis "another-task" est exécuté

si vous souhaitez spécifier l'environnement actuel via l'option de 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 de grognement avec --environment=production la production sera définie, sinon le développement sera défini

49
hereandnow78