234

NodeJSのチュートリアルに従おうとしています。私は何も見逃したとは思いませんが、私が呼び出すときはいつでも私process.env.NODE_ENVが返す唯一の値はですundefined。私の調査によると、デフォルト値はですdevelopment。この値はどのように動的に設定され、最初はどこに設定されますか?

4

19 に答える 19

262

process.envは環境への参照であるため、そこで変数を設定する必要があります。

Windowsで環境変数を設定するには:

SET NODE_ENV=development

macOS / OS XまたはLinuxの場合:

export NODE_ENV=development
于 2012-06-19T15:19:53.230 に答える
62

*nix (Linux、OS X など) を使用している場合は、2 番目のエクスポート コマンドを使用して実行する必要はありません。呼び出しコマンドの一部として連鎖させることができます。

NODE_ENV=development node server.js

簡単ですよね?:)

于 2014-06-15T18:08:17.193 に答える
47

Windows でノードを操作しているときに、この問題に遭遇しました。

アプリを実行しようとする人にこれらの変数を設定するよう要求するのではなく、アプリ内でフォールバックを提供しました。

var environment = process.env.NODE_ENV || 'development';

本番環境では、通常の方法 (SET/エクスポート) に従って定義します。

于 2015-07-24T13:10:29.123 に答える
14

package.json では、以下のように設定する必要があります (Linux および Mac OS で動作します)。

重要なことは、以下のビルド コマンドの後の「export NODE_ENV=production」です。

  "scripts": {
     "start": "export NODE_ENV=production && npm run build && npm run start-server",
     "dev": "export NODE_ENV=dev && npm run build && npm run start-server",
  } 
  • 開発環境の場合、「npm run dev」コマンドを押す必要があります

  • 本番環境の場合、「npm run start」コマンドを押す必要があります

于 2019-02-13T08:11:33.513 に答える
7

アプリケーションのできるだけ早い段階で、dotenv を要求して構成します。

require('dotenv').config()

于 2020-07-03T10:58:13.053 に答える
6

UBUNTU では次のように使用します。

$ export NODE_ENV=テスト

于 2014-02-14T17:56:30.313 に答える
1

dotenvnpm からパッケージを使用できます。リンクは次のとおりです: https://www.npmjs.com/package/dotenv

これにより、すべての構成を.envファイルに配置できます

于 2021-05-28T15:35:27.077 に答える
0

Electron Jsでは

"scripts": {
    "start": "NODE_ENV=development electron index.js",
},
于 2021-03-15T05:17:47.337 に答える
0

React でこの問題に直面した場合は、react-scripts@0.2.3 以降が必要です。また、React で動作する以外の環境変数についてはNODE_ENV、接頭辞を付ける必要がありますREACT_APP_

于 2020-04-11T15:00:58.663 に答える
0

processという名前の関数を定義すると、この問題が発生する可能性があります。

于 2021-05-05T06:23:46.067 に答える
0

Windows/Mac/Linux の package.json で process.env.NODE_ENV を定義する:

私の Mac (MacBook Pro 2019、16 インチ、Big Sur) でうまくいったのは次のとおりです。

"scripts": {
    "build": "export NODE_ENV=prod || set NODE_ENV=prod&& npx eslint . && node --experimental-json-modules ./backend/app.js && gulp",
},

文字列を使用するexport NODE_ENV=prod || set NODE_ENV=prod&& と、Windows と Linux で動作する可能性がありますが、テストしていません。

誰かがそれを確認できれば、それは素晴らしいことです。

残念ながら、私のpackage.jsonファイルではcross-env npm パッケージを使用してもまったく機能しませんでし。これを機能させるために Mac で長い時間を費やしています。

于 2021-10-28T00:17:34.707 に答える
-5

次のように、コードで設定することもできます。

process.env.NODE_ENV = 'test';

于 2014-02-06T09:25:09.810 に答える