设置环境variablesgrunt或grunt-exec

我正在尝试使用grunt-exec运行一个带有部署链接variables的javascripttesting运行器。

我试图通过使用exec:setLink设置一个环境variablesgrunt.option('link')exec:setLink 。 在我的test_runner.js我使用process.env.TEST_LINK获取variables。 不幸的是,似乎grunt-exec不会运行诸如export(?)之类的bash命令

真的,我不在乎variables如何到达我的test_runner.js所以任何其他想法都会受到欢迎。

 exec: { // DOESN'T WORK: Sets env variable with link for selenium tests setLink: { cmd: function () { return "export TEST_LINK=" + "'" + grunt.option('link') + "'"; } }, // Integration tests, needs TEST_LINK selenium: { cmd: function () { return "node test/runner/jasmine_runner.js"; } } 

使用grunt-exec ,可以在env选项中指定subprocess的环境variables:

 exec: { selenium: { cmd: function () { return "node test/runner/jasmine_runner.js"; }, options: { env: { 'TEST_LINK': grunt.option('link') } } } } 

有一点需要记住的是,如果在env选项中只指定了TEST_LINK ,那么这将是subprocess的唯一环境variables。 如果你想让当前进程的环境variables也被传递,你可以这样做:

 exec: { selenium: { cmd: function () { return "node test/runner/jasmine_runner.js"; }, options: { env: Object.assign({}, process.env, { 'TEST_LINK': grunt.option('link') }) } } } 

我结束了刚刚使用节点process.env['TEST_LINK'] = grunt.option('link'); 然后用process.env['TEST_LINK'];在javascript中检索process.env['TEST_LINK'];