【问题标题】:How to set multiple environment variables in a single line on Windows?如何在 Windows 上的一行中设置多个环境变量?
【发布时间】:2020-03-12 20:45:32
【问题描述】:

我正在开发一个 Node.js 项目并使用 Jest 作为测试框架。这个项目在 Windows 上运行,我在命令行上设置了多个环境变量。

这是package.json中的相关行

  "scripts": {
     "test": "SET NODE_ENV=test & SET DB_URI=postgresql://<database stuff>> & jest -t Suite1 --watch --verbose false"
  },

如上所示,我在通过npm run test 运行jest 之前设置了NODE_ENVDB_URI 环境变量。

我的问题是,当 jest 运行时,DB_URI 环境变量似乎没有设置。我从开玩笑中得到的错误很明显它找不到它。我确实知道第一个 NODE_ENV 环境变量设置正确,但不确定第二个有什么问题,我是否以某种方式弄错了语法?有没有人在 Windows 上做过类似我正在尝试的事情?

【问题讨论】:

    标签: node.js environment-variables jestjs


    【解决方案1】:

    如果你是从 powershell 设置环境变量,你可以这样做:

    cmd /K "set f=df & echo %f%"
    

    输出将是“df”

    【讨论】:

      【解决方案2】:

      我建议您添加cross-env。它应该能够为 Windows 和 POSIX 设置多个环境变量

      package.json
      {
        // ...
        "scripts": {
          "test": "cross-env NODE_ENV=test DB_URI=postgresql://<database stuff>> jest -t Suite1 --watch --verbose false"
        },
        "devDependencies": {
          "cross-env": "^6.0.0"
        }
      }
      

      【讨论】:

        【解决方案3】:

        只需进行以下更改:

        使用&&,也需要去掉“&&”前后的空格。

        "scripts": {
             "test": "SET NODE_ENV=test&&SET DB_URI=postgresql://<database stuff>>&&jest -t Suite1 --watch --verbose false"
          },
        

        【讨论】:

        • 一直在寻找这个...谢谢!
        猜你喜欢
        • 2022-10-15
        • 1970-01-01
        • 2020-02-14
        • 1970-01-01
        • 2018-03-15
        • 2016-07-28
        • 2017-03-30
        • 1970-01-01
        相关资源
        最近更新 更多