現在、Node.jsプロジェクトで作業しており、環境変数の設定を自動化したいと考えています。私はこのようになりますスクリプト(set_env.ps1
)書いた:.ps1スクリプトから環境変数を設定する
Write-Host "Setting environment variables...";
$env:CLIENT_KEY="xxxxxxxxxxxxxxxx";
$env:CLIENT_SECRET="xxxxxxxxxxxxx";
[etc]
をそして、私はいくつかのNPMスクリプトからこれを呼び出す:
"scripts": {
"install:windows": "powershell ./set_env.ps1",
"start": "npm run install:windows && node index",
"monitor": "npm run install:windows && nodemon index"
},
が動作するようには思えません。コマンドラインで一度に1つずつ、同じコマンドを手動で入力することができ、環境変数が設定されます。しかし、スクリプトを実行するだけで、 "環境変数を設定する..."はPowerShellのプロンプトに表示されますが、変数は設定されません。
インターネット上のすべてのものは、一度に1つのenv varのプロンプトからこれを実行すると思われます。これは、環境変数の長いリストでは非常に面倒であり、Webstormの埋め込まれたPowershellプロンプトには貼り付けられた文字列を受け入れないという習慣があります。
一般に、すべての生成プロセスは、生成されたプロセスを終了するときに失われる親環境のコピーを継承します。 varsをハンドオーバーするための別の方法を探す必要があります。 – LotPings
'npm'コマンドをトリガするプロセス内の変数を設定する必要があります。 –
@Bill_Stewart hehh、コマンドプロンプトからnpmを実行しているときにできることはまったくありませんが、あなたのコメントは私には分かりませんでした。私は「npm」を実行できます。コマンドをPowershellスクリプトで実行します。答えは近づく。 –