簡體   English   中英

將多個變量傳遞給 package.json 腳本

[英]Pass more than one variable to a package.json script

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

因此,在我們確定這是我的package.json文件這一事實之后,讓我向您展示它:

包.json

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

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

讓我明確一點,我不想閱讀 bash 或 zshell、fish 或 sh 的聯機幫助頁。 這就是為什么我把問題放在這里但沒有閱讀聯機幫助頁 - 否則我不會把它放在這里並且會閱讀聯機幫助頁。 謝謝你的理解。

你的腳本應該是:

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

因為您可以在空間分隔時使用多個環境。 這源於 bash 等終端的常見行為,您可以在其中即時設置多個 env 變量:

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

我和 Stevek 在一起,我閱讀了答案(重復的答案)並且對 bash 的引用感到沮喪。 我在使用 Powershell 的 Windows 系統上。 我想傳遞多個環境變量並讓它在使用 Powershell 的 Windows 系統中工作。 除非啟用跨系統使用,否則對 *nix 命令等的任何引用都是一團糟。

到目前為止,這個答案沒有得到解答。 所以會添加我發現的

這個問題告訴你如何傳遞 1 個變量。 如何從 package.json 中設置環境變量

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

現在如何傳遞多於 1? 這仍然是一個問題。

有人告訴我使用 cross-env 是最好的:cross-env NODE_ENV=production my-command

答案在這里給出: 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]

暫無
暫無

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

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