Express.js環境で使用します。助言がありますか?
アプリを実行する前に、コンソールでこれを実行できます。
export NODE_ENV=production
あなたが窓にいるなら、またはあなたはこれを試すことができます:
SET NODE_ENV=production
または、あなたはこのようにあなたのアプリを走らせることができます:
NODE_ENV=production node app.js
Jsファイルに設定することもできます。
process.env.NODE_ENV = 'production';
しかし、サーバー上でVIMを開いて運用環境に変更するのは容易ではないため、ランタイムファイルで実行することはお勧めしません。あなたはあなたのディレクトリにconfig.jsonファイルを作成することができ、あなたのアプリケーションが実行されるたびに、それはそれから読み込んで設定を設定します。
package.json内:
{
...
"scripts": {
"start": "NODE_ENV=production node ./app"
}
...
}
その後ターミナルで実行します。
npm start
誰もまだここに.env
を挙げていませんか?アプリのルートに.env
ファイルを作成し、次にrequire('dotenv').config()
を作成して値を読み取ります。簡単に変更、読みやすく、クロスプラットフォーム。
export NODE_ENV=production
は悪い解決策です、それは再起動後に消えます。
あなたがもうその変数について心配したくないなら - このファイルにそれを追加してください:
/etc/environment
エクスポート構文を使用せず、単に書き込みます(コンテンツが既に存在する場合は改行します)。
NODE_ENV=production
再起動後に動作します。 export NODE_ENV = production コマンドを再入力する必要はなくなり、nodeを使用したいものであればいつでも - 永久にpm2 ...
herokuの場合:
heroku config:set NODE_ENV="production"
これは実際にはデフォルトです。
これはNODE_ENVについてのよい記事です: http://www.hacksparrow.com/running-express-js-in-production-mode.html 。
Gruntから自動的に設定するには https://npmjs.org/package/grunt-env pluginを使用できます。
heroku config:set NODE_ENV="production"
スクリプトをWindows、Mac、Linuxのどちらで実行しているかを気にする必要はありません。cross-envパッケージをインストールしてください。そうすれば、スクリプトを簡単に使うことができます。
"scripts": {
"start-dev": "cross-env NODE_ENV=development nodemon --exec babel-node -- src/index.js",
"start-prod": "cross-env NODE_ENV=production nodemon --exec babel-node -- src/index.js"
}
このパッケージの開発者への大道具。
Windows Powershellの場合は、このコマンドを使用します。
$env:NODE_ENV="production" ; node app.js
OSXでは、export NODE_ENV=development
を~/.bash_profile
や~/.bashrc
、~/.profile
に追加することをお勧めします。
個人的にはそのエントリを自分の~/.bashrc
に追加してから、そのファイルの内容を~/.bash_profile
~/.profile
にインポートさせるので、環境間で一貫性があります。
これらを追加した後、必ず端末を再起動して設定を取得してください。
アプリケーションで webpack を使用している場合は、DefinePlugin
..を使用して、そこに単純に設定できます。
plugin
セクションで、 NODE_ENV をproduction
に設定します。
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': '"production"',
})
]
あなたが窓にいるならば。それから最初の正しいフォルダであなたのcmdを開いてください
set node_env={your env name here}
enterを押すと、あなたはあなたのノードをで起動することができます。
node app.js
それはあなたのenv設定で始まります
Danielは素晴らしい答えを持っています。それは正しい展開(設定と忘却)プロセスのためのより良いアプローチです。
Expressを使っている人のために。あなたは同様に素晴らしいgrunt-express-serverを使うことができます。 https://www.npmjs.org/package/grunt-express-server
複数の環境を作成するには、以前にすべての回答(NODE_ENVパラメーターとエクスポート)が必要ですが、何もインストールすることなく非常に単純なアプローチを使用します。 package.jsonに、必要な各envのスクリプトを次のように配置します。
...
"scripts": {
"start-dev": "export NODE_ENV=dev && ts-node-dev --respawn --transpileOnly ./src/app.ts",
"start-prod": "export NODE_ENV=prod && ts-node-dev --respawn --transpileOnly ./src/app.ts"
}
...
次に、npm start
を使用する代わりにアプリを起動するには、npm run script-prod
を使用します。
コードでは、process.env.NODE_ENV
を使用して現在の環境にアクセスできます。
出来上がり。