回答:
あなたのエラーはこのようなものを実行しようとしたために発生したようです(Linuxで動作します)
NODE_ENV=development node foo.js
Windowsでの同等のものは
SET NODE_ENV=development
node foo.js
同じコマンドシェルで実行します。セットNODE_ENVは機能しないと述べましたが、それをどのように/いつ実行したかは明確ではありませんでした。
このためのモジュールを作成しました:win-node-env。
環境変数NODE_ENV.cmd
を設定NODE_ENV
し、残りのコマンドとその引数を使用して子プロセスを生成するを作成します。
それを(グローバルに)インストールし、npmスクリプトコマンドを実行するだけで、自動的に機能します。
npm install -g win-node-env
ウィンドウ&
間でもコマンドを使用します。お気に入り、
"scripts": {
"start": "SET NODE_ENV=development & nodemon app/app.js",
}
NODE_ENV
「development」になります(「t」と「&」の間の空白はによって含まれますNODE_ENV
)
.trim()
をするために後で価値を持たなければなりませんprocess.env.NODE_ENV == 'production'
。とにかくこれをワンライナーで避けるには?
"test-unit": "SET NODE_ENV=test & mocha --require co-mocha 'test.js'"
まちがって "test-unit": "SET NODE_ENV=test & mocha --require co-mocha test.js"
いる。jsファイルの ' '
周り
npm install "cross-env"
モジュール。cross-env NODE_ENV=development node foo.js
。その後、あなたは同じように実行することができますnpm run build
。cross-env
依存関係に含めることを忘れないでくださいpackage.json
npm install --save-dev cross-env
。これは'env' is not recognized as an internal or external command
、npmスクリプトが言ったときのエラーにも役立ちますenv VARNAME=varvalue && ...
(代わりにenvを削除してcross-envを挿入してください)。開発者が何かをグローバルにインストールしたり、プラットフォームごとに異なるnpmスクリプトを用意したりする必要はありません。
win-node-envを使用します。使用するには、以下のコマンドをcmd
or power shell
またはorで実行しますgit bash
。
npm install -g win-node-env
その後はすべてLinuxのようになります。
Windowsに対応するようにスクリプトを変更するのは大変なことです。適切なWindowsの翻訳を理解し、2セットのスクリプトを維持することは、人生を生きる方法ではありません。
Windowsでbashを使用するようにnpmを設定する方がはるかに簡単で、スクリプトはそのまま実行されます。
単に実行しnpm config set script-shell "C:\\Program Files\\Git\\bin\\bash.exe"
ます。bash実行可能ファイルへのパスがマシンに適していることを確認してください。変更を有効にするには、ターミナルの新しいインスタンスを開始する必要があるでしょう。
以下のスクリーンショットは、メリットを示しています。
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=
は正しく動作します。
Windowsの場合は git bashを開いて試してください
NODE_ENV=production node app.js
npm <scripts_entry>
、別の表現でエラーが発生しますが、意味は同じです。envvar nameを実行可能ファイルとして扱います。
npm run <script>
は、デフォルトでWindows cmdを使用してコマンドを実行します。Git Bashを使用するように設定できます。npm config set script-shell "C:\\Program Files\\git\\bin\\bash.exe"
そして、npm run
Git Bashを使用してスクリプトを実行します。
そこにある答えのほとんどは私を助けませんでした。
私を助けたのは NODE_ENV=production&& nodemon app/app.js
スペースに注意してください。幸運を。
私のように誰かがエラーの解決策を見つけようとしてここに来た場合:
'env' is not recognized as an internal or external command
これを取得した理由は、Macの開発マシンからWindows 10デスクトップに角度のあるソリューションを移行していたためです。これは私がそれを解決した方法です。
走る npm install --save-dev cross-env
私のpackage.jsonファイルに移動し、すべてのスクリプト参照をからenv <whatever>
に変更しますcross-env <whatever>
次に、私のようなコマンド:npm run start:some_random_environment_var
Windows 10で正常に実行されます。