回答:
Windowsの現在のバージョンでは、Powershellをデフォルトのシェルとして使用しているため、以下を使用します。
$env:NODE_ENV="production"
以下の@jsalonenの回答ごとに。CMD(メンテナンスされなくなった)の場合は、
set NODE_ENV=production
これは、Node.jsアプリケーションを実行する予定のコマンドプロンプトで実行する必要があります。
上記の行は、コマンドを実行するコマンドプロンプトの環境変数NODE_ENVを設定します。
環境変数をグローバルに設定して、単一のコマンドプロンプトを超えて持続するようにするには、コントロールパネルの[システム]から(または、スタートメニューの検索ボックスに「環境」と入力して)ツールを見つけます。
set NODE_ENV=production && node app
。より適切に構成してくださいpackage.json
:"scripts": { "start": "set NODE_ENV=production && node app" }
。
echo %NODE_ENV%
して現在の値を確認できます。
cross-env
あなたのチームが混合オペレーティングシステムで作業している場合、この問題のより良い解決策は使用することです。@MoOxからの回答が、この質問への回答としての私の選択です。
独自の構文であるクロスプラットフォームを使用して環境変数を定義するのに役立つ、優れたNode.jsパッケージを見つけました。
https://www.npmjs.com/package/cross-env
それはあなたがこのようなものを書くことを可能にします:
cross-env NODE_ENV=production my-command
かなり便利です!WindowsやUnix固有のコマンドはもうありません!
PowerShellの場合:
$env:NODE_ENV="production"
set NODE_ENV=production
powershellでは私にとってはうまくいきませんでしたが、これはうまくいきました。ありがとう!
$env:NODE_ENV="development"; gulp runMytask
。セミコロンに注意してください。gulpファイルは、process.env.NODE_ENVで条件付きロジックを使用できます。設定しない限り、未定義になります。
cross-env NODE_ENV=production
env。の設定が必要なpackage.jsonからnpmコマンドを実行する場合、このオプションは本当に優れたソリューションです。$ env:NODE_ENVオプションを使用した後、envをdev / prodに設定したままにするのは簡単すぎます
WindowsでNode.jsを起動する呼び出しと同じ行にパラメーターを設定できれば理想的です。以下を注意深く見て、記載されているとおりに実行してください。
次の2つのオプションがあります。
コマンドラインで:
set NODE_ENV=production&&npm start
または
set NODE_ENV=production&&node index.js
Windowsで機能するための秘訣は、「&&」の前後の空白を削除する必要があることです。以下のstart_windows(以下を参照)でpackage.jsonファイルを構成しました。次に、コマンドラインで「npm run start_windows」を実行します。
//package.json
"scripts": {
"start": "node index.js"
"start_windows": "set NODE_ENV=production&&node index.js"
}
使用できます
npm run env NODE_ENV=production
WindowsとUnixの両方で互換性があるため、おそらくこれが最良の方法です。
envスクリプトは特別な組み込みコマンドで、実行時にスクリプトで使用できる環境変数をリストするために使用できます。「env」コマンドがパッケージで定義されている場合、組み込みコマンドよりも優先されます。
npm run env NODE_ENV=production -- node -e 'console.log(process.env.NODE_ENV)'
--
node -e 'console.log(process.env.NODE_ENV)'
npm run env NODE_TLS_REJECT_UNAUTHORIZED=0 -- node --inspect ./etc/http-req-standalone.js
...何も起こりませんでした。この方法がWindowsで機能するかどうかはわかりません。
NTVSでVisual Studioを使用している場合は、プロジェクトのプロパティページで環境変数を設定できます。
ご覧のとおり、[構成]および[プラットフォーム]ドロップダウンは無効になっています(なぜそうなのか詳しく調べていません)が、.njsproj
次のようにファイルを編集すると、
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
<Environment>NODE_ENV=development</Environment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugSymbols>true</DebugSymbols>
<Environment>NODE_ENV=production</Environment>
</PropertyGroup>
[デバッグ/リリース]ドロップダウンは、Node.jsを開始する前に変数の設定方法を制御します。
* nixと同じようにコマンドを実行できるwin-node-envモジュールを作成しました。
NODE_ENV=production node myapp/app.js
環境変数NODE_ENV.cmd
を設定NODE_ENV
し、残りのコマンドとその引数を使用して子プロセスを生成するを作成することで機能します。
それを(グローバルに)インストールし、npmスクリプトコマンドを実行するだけで、自動的に機能します。
npm install -g win-node-env
Visual Studio 2013のWindows 7 64ビットでNode.jsを使用した私の経験では、
setx NODE_ENV development
cmdウィンドウから。また、新しい値が認識されるようにするには、Visual Studioを再起動する必要があります。
set構文は、それが設定されているcmdウィンドウの間だけ持続します。
Node.jsでの簡単なテスト:
console.log('process.env.NODE_ENV = ' + process.env.NODE_ENV);
setを使用すると「undefined」を返し、setxを使用してVisual Studioを再起動すると「development」を返します。
cmd
-powershellではありませんか?ああ、窓に来て、一緒にそれを取得します。
次にコマンドライン以外の方法を示します。
Windows 7または10では、スタートメニューの検索ボックスに「環境」と入力し、[システム環境変数の編集]を選択します。
または、コントロールパネル\システムとセキュリティ\システムに移動して、システムの詳細設定をクリックします。
これにより、[詳細設定]タブが選択された状態で[システムのプロパティ]ダイアログボックスが開きます。下部に、[環境変数...]ボタンが表示されます。こちらをクリックしてください。
[環境変数]ダイアログボックスが開きます。
下部の[システム環境変数]で、[新規...]を選択します。これにより、[新しいシステム変数]ダイアログボックスが開きます。
変数名と値を入力して、「OK」をクリックします。
新しい変数をprocess.envで使用できるようにするには、すべてのcmdプロンプトを閉じてサーバーを再起動する必要があります。それでも表示されない場合は、マシンを再起動してください。
ただ明確にするために、そして彼らの髪を引っ張っているかもしれない誰かのために...
Windowsでgit bashを使用している場合は、set node_env=production&& node whatever.js
動作しないようです。代わりに、ネイティブcmdを使用してください。次に、set node_env=production&& node whatever.js
期待どおりに動作します。
私のユースケース:
私はWindowsで開発しています。ワークフローがはるかに速いためですが、アプリケーションの開発固有のミドルウェアが本番環境で起動されないことを確認する必要がありました。
以下のために、複数の環境変数、.env
ファイルの方が便利です。
# .env.example, committed to repo
DB_HOST=localhost
DB_USER=root
DB_PASS=s1mpl3
# .env, private, .gitignore it
DB_HOST=real-hostname.example.com
DB_USER=real-user-name
DB_PASS=REAL_PASSWORD
で簡単に使えますdotenv-safe
:
npm install --save dotenv-safe
ます。index.js
)、process.env
次のコマンドで直接使用します。require('dotenv').load()
console.log(process.env.DB_HOST)
VCS内の.env
ファイルを無視することを忘れないでください。
次に、「で定義された」.env.example
変数が環境変数またはで設定されていない場合、プログラムは高速に失敗し.env
ます。