簡體   English   中英

設置環境變量grunt或grunt-exec

[英]Set environment variables grunt or grunt-exec

我正在嘗試使用grunt-exec來運行傳入的已部署鏈接變量的javascript測試運行器。

我試圖通過使用exec:setLink設置環境變量grunt.option('link')exec:setLink 在我的test_runner.js我使用process.env.TEST_LINK獲取變量。 不幸的是,似乎grunt-exec不會運行bash命令,例如export(?)

真的,我不關心變量如何到達我的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選項中指定子進程的環境變量:

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

要記住的一件事是,如果在env選項中只指定了TEST_LINK ,那么這將是子進程的唯一環境變量。 如果您希望傳遞當前進程的環境變量,也可以執行以下操作:

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

我最后只使用了node process.env['TEST_LINK'] = grunt.option('link'); 然后在我的javascript中使用process.env['TEST_LINK'];檢索process.env['TEST_LINK'];

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM