将多个变量传递给 package.json 脚本

Pass more than one variable to a package.json script

我有 package.json(不是 BASH,不是 SH,不是 ZSHELL,不是 FISH)。

所以在我们确定这是我的 package.json 文件之后,让我向您展示它:

package.json

  "scripts": {
    "dev": "NODE_ENV=myValue myProgram"
  }

我想在上面的文件中添加更多变量(例如 MYVAR=myOtherValue),这是我的 package.json 文件。我该怎么做(向我的 package.json 文件添加更多变量)?

让我明确一点,我不想阅读 bash 或 zshell、fish 或 sh 的联机帮助页。这就是为什么我把问题放在这里而没有阅读联机帮助页的原因 - 否则我不会把它放在这里并且会阅读联机帮助页。谢谢理解。

您的脚本应该是:

"dev": "NODE_ENV=myValue MYVAR=myOtherValue myProgram"

当space分隔时可以添加多个环境变量。

这源于 bash 等终端的常见行为,您可以在其中动态设置多个环境变量:

FOO1=baz FOO2=fnord FOO3=baz env | grep FOO
FOO1=baz
FOO2=fnord
FOO3=baz

我在这个问题上支持史蒂夫,我阅读了答案(重复的答案)并且对 bash 的引用感到沮丧。我在使用 Powershell 的 windows 系统上。我想传递多个环境变量并让它在使用 Powershell 的 windows 系统中工作。除非启用跨系统使用,否则任何对 *nix 命令等的引用都是在混淆视听。

目前这个答案还没有人回答。所以将添加我发现的内容

这道题告诉你如何传递1个变量。 How to set environment variables from within package.json

 "start": "set NODE_ENV=YOURENV&&node start.js"

现在如何传1个以上?还是这个问题。

有人告诉我使用 cross-env 是最好的: 跨环境 NODE_ENV=生产我的命令

这里给出了答案:https://github.com/kentcdodds/cross-env/issues/15

"scripts": {
  "debug": "cross-env NODE_PATH=. DEBUG=app:* nodemon bootload.js"
}

然而,cross-env 并没有使用 PowerShell,而是在 windows 上贬低了 cmd shell。那么回到主要问题。 [除非您进行此更改 https://github.com/kentcdodds/cross-env/issues/192#issuecomment-513341729]