Node.js 如何在Windows上的一行中设置多个环境变量?

Node.js 如何在Windows上的一行中设置多个环境变量?,node.js,environment-variables,jestjs,Node.js,Environment Variables,Jestjs,我正在处理一个Node.js项目,并将其用作测试框架。这个项目在Windows上运行,我在命令行上设置了多个环境变量,这让我感到非常痛苦 下面是package.json中的相关行 "scripts": { "test": "SET NODE_ENV=test & SET DB_URI=postgresql://<database stuff>> & jest -t Suite1 --watch --verbose false" }, “脚本”

我正在处理一个Node.js项目,并将其用作测试框架。这个项目在Windows上运行,我在命令行上设置了多个环境变量,这让我感到非常痛苦

下面是
package.json中的相关行

  "scripts": {
     "test": "SET NODE_ENV=test & SET DB_URI=postgresql://<database stuff>> & jest -t Suite1 --watch --verbose false"
  },
“脚本”:{
“test”:“SET NODE_ENV=test&SET DB_URI=postgresql://>&jest-t Suite1--watch--verbose false”
},
如上所述,我正在通过
npm run test
运行
jest
之前设置
NODE_ENV
DB_URI
环境变量


我的问题是当jest运行时,
DB_URI
环境变量似乎没有设置。我从jest那里得到的错误表明它显然找不到它。我确实知道第一个,
NODE_ENV
环境变量设置为ok,但不确定第二个变量有什么问题,我是不是语法有误?有没有人在Windows上有过类似于我尝试的玩笑经验?

只需做以下更改:

使用&&,还需要删除“&&”前后的空白

“脚本”:{
“test”:“SET NODE_ENV=test&&SET DB_URI=postgresql://>&&jest-t Suite1--watch--verbose false”
},
我建议您添加。它应该能够为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"
  }
}
{
// ...
“脚本”:{
“测试”:“跨环境节点\u env=test DB\u URI=postgresql://>jest-t Suite1--watch--verbose false”
},
“依赖性”:{
“交叉环境”:“^6.0.0”
}
}
{
  // ...
  "scripts": {
    "test": "cross-env NODE_ENV=test DB_URI=postgresql://<database stuff>> jest -t Suite1 --watch --verbose false"
  },
  "devDependencies": {
    "cross-env": "^6.0.0"
  }
}