web-dev-qa-db-ja.com

「NODE_ENV」は、内部コマンドまたは外部コマンド、操作可能なコマンド、またはバッチファイルとして認識されません

Node.jsアプリの環境をセットアップしようとしています。しかし、私は毎回このエラーを受け取っています。

「NODE_ENV」は、内部または外部コマンド、操作可能なコマンド、またはバッチファイルとして認識されません。

これは何を意味し、どのようにこの問題を解決できますか?

私はWindowsを使用していますが、set NODE_ENV=developmentも試しましたが、運がありませんでした。

152
krozero

あなたのエラーは、このようなものを実行しようとしたことから来ているようです(Linuxで動作します)

NODE_ENV=development node foo.js

windowsで同等のものは

SET NODE_ENV=development
node foo.js

同じコマンドシェルで実行します。 NODE_ENVの設定は機能しなかったと述べましたが、どのように/いつ実行したかは明確ではありませんでした。

213
Jim O'Neil

このためのモジュールを作成しました: win-node-env

NODE_ENV.cmd環境変数を設定するNODE_ENVを作成し、残りのコマンドとその引数と共に子プロセスを生成します。

(グローバルに)インストールし、npmスクリプトコマンドを実行するだけで、自動的に機能するはずです。

npm install -g win-node-env
150
laggingreflex

windowsの場合は、コマンド間でも&を使用します。好む、

  "scripts": {
    "start": "SET NODE_ENV=development & nodemon app/app.js",
  }
132
Mahmudul Hasan
  1. npm install "cross-env"モジュール。
  2. コードをcross-env NODE_ENV=development node foo.jsとして変更します。それからnpm run buildのように実行できます。
66
Susan-stack

win-node-env を使用します。使用するには、cmdまたはpower Shellまたはgit bashで次のコマンドを実行します。

npm install -g win-node-env

その後、すべてがLinuxのようになります。

25
AmerllicA
set NODE_ENV=production & nodemon app/app.js

nODE_ENVの最後にスペースが含まれます。

process.env.NODE_ENV == 'production'; //false
process.env.NODE_ENV == 'production '; //true

コメント here で述べたように、代わりにこれを使用してください:

NODE_ENV=production&& nodemon app/app.js
20
Flion
npm install -S cross-env

私のために働いた

3
Bang Andre

Windowsに対応するようにスクリプトを変更することは、大変な苦痛です。適切なWindowsの翻訳を把握し、2セットのスクリプトを維持することは、あなたの人生を生きる方法ではありません。

Windowsでbashを使用するようにnpmを構成する方がはるかに簡単で、スクリプトはそのまま実行されます。

npm config set script-Shell "C:\\Program Files\\Git\\bin\\bash.exe"を実行するだけです。 bash実行可能ファイルへのパスがマシンに合っていることを確認してください。 変更を有効にするには、おそらくターミナルの新しいインスタンスを起動する必要があります。

以下のスクリーンショットはその利点を示しています。

  1. npm ERR!最初にスクリプトを実行しようとしたとき。
  2. Windows用に変更されたスクリプトは実行されますが、戻りメッセージは表示されません。
  3. Npm configを更新してbashを使用すると、スクリプトが実行され、適切なメッセージが返されます。

Getting npm scripts to run as is in Windows

3
Jon Crowell

Git Bashを使用しており、npm run <script>に問題がある場合は、

Git Bashを使用してスクリプトを実行するようにnpmを設定するだけです

npm config set script-Shell "C:\\Program Files\\git\\bin\\bash.exe"(インストールに応じてパスを変更します)

そして、npmはGit Bashでスクリプトを実行するので、NODE_ENV=などの使用法は適切に機能します。

1
user3790180

エラーの解決策を見つけようとしている私のような誰かがここに来た場合:

'env' is not recognized as an internal or external command

これを取得した理由は、angularソリューションをMac開発マシンからWindows 10デスクトップに移行していたためです。これは私がそれを解決した方法です。

  1. npm install --save-dev cross-envを実行します

  2. package.jsonファイルに移動して、すべてのスクリプト参照をenv <whatever>からcross-env <whatever>に変更します

次に、次のようなコマンドを実行します:npm run start:some_random_environment_varがWindows 10で正常に実行されるようになりました。

1
Helzgate

そこまでの答えのほとんどは私を助けませんでした。

私を助けたのはNODE_ENV=production&& nodemon app/app.jsでした

スペースに注意してください。幸運を。

1
SirPhemmiey

Windowsの場合git bashを開くを試してください

NODE_ENV=production node app.js

0
Nikhil Arya