如何在Visual Studio代码中使用环境变量设置任务?

时间:2019-02-24 14:11:29

标签: npm visual-studio-code vscode-settings vscode-tasks

我需要在vs代码中创建任务的可能性,在其中可以设置某些环境变量,以便我可以通过以下方式使用它们: process.env.gateway_host

因此,如果我以 npm run start 为例,这些变量应该可以在我的 proxy.conf.json 中使用。

我不知道确切的解决方案和语法,因为我从未做过这样的事情。我该在哪里以及如何将这些变量放入vs代码中?

这是我的task.json:

{
"version": "2.0.0",
"command": "npm",
"supressTaskName" : true,
"options": {
    "env": {
        "gateway_host" : "...",
        "http_proxy": "http://localhost:8080",
        "HTTP_PROXY": "http://localhost:8080"
    }
},
"tasks": [
    {
        "label": "run",
        "args":[
            "start"
        ]
    }

]
}

这是我的proxy.conf.js:

var HttpsProxyAgent = require('https-proxy-agent');
var proxyConfig = [
  {
    context: '/api/**',
    target: "process.env.gateway_host",
    changeOrigin: true,
    agent: new HttpsProxyAgent(process.env.http_proxy || process.env.HTTP_PROXY),
    secure: false,
    logLevel: 'debug'
  },
  {
    context: '/resources**',
    target: process.env.gateway_host,
    changeOrigin: true,
    agent: new HttpsProxyAgent(process.env.http_proxy || process.env.HTTP_PROXY),
    secure: false,
    logLevel: 'debug'
  }
];

module.exports = proxyConfig;

检测到环境变量 process.env.gateway_host ,但未检测到 http_proxy 变量。当我直接在我的proxy.conf.js 中输入字符串“ http://localhost:8080”而不是 process.env.HTTP_PROXY 时,一切正常。因此,还需要识别环境变量“ http_proxy”。但是如何?

0 个答案:

没有答案