[解決済み] NODE_ENVをnpmスクリプトに渡す(Windows 10用
質問
を使っています。
webpack
をTypescriptプロジェクトで使用しています。私は
チュートリアル
を3つ作成しました。
webpack
ファイルを作成します。
-
webpack.common.js
-
webpack.production.js
-
webpack.development.js
チュートリアルの
package.json
その
"scripts"
の秒数は以下の通りです。
"build": "webpack --config webpack.$NODE_ENV.js"
を調べてみたのですが
以下のSEクエリ
を設定します。
NODE_ENV
をWindows 10用に変更しました。
PowerShell内のどこで実行するか。
$env:NODE_ENV="development"
しかし、一旦
npm run build
スクリプトはまだ
$NODE_ENV
を文字列として扱い、値を代入しない。
にシフトするかもしれません。
cross-env
でも、PowerShellで環境変数を試してみたいです。
それに相当するコマンドは何でしょうか。
NODE_ENV=development npm run build
NODE_ENV=production npm run build
をどのように変更すればよいのでしょうか?
scripts
での
package.json
ビズ
$NODE_ENV
を変数に受け入れるか?
使用方法
cross-env
を使用して同様のことを実現することができます。
cross-env
を行うことで、以下のようになります。
-
npm i --save-dev cross-env
-
内
"scripts"
を追加します。"build-dev": "cross-env NODE_ENV=development webpack --config webpack.%NODE_ENV%.js" "build-prod": "cross-env NODE_ENV=production webpack --config webpack.%NODE_ENV%.js"
そして、これがそれぞれのスクリプトを起動させるはずです。
しかし、これでは、env.変数を設定しながら一般的な npm スクリプトコマンドを実行する柔軟性を提供できないままです。 オンザフライ
PowerShellの制限事項
クエリによって、次のようなことが提案されている例があります。
set NODE_ENV=production&& npm run build
が、これはPowerShellでは以下のエラーで失敗します。
At line:1 char:24
+ set NODE_ENV=production&& npm run build-dev
+ ~~
The token '&&' is not a valid statement separator in this version.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : InvalidEndOfLine
そして
&
は将来使用するために予約されています。
解決方法は?
この問題は、@ambienBeing さんのコメントに基づいて解決することができました。ただし、いくつか注意点があります。
-
その
&&
しない はPowerShell
しかし ワークス でcmd
-
の代わりに
$NODE_ENV
を適応させる必要がありました。%NODE_ENV%
で"scripts"
部分"build": "echo %NODE_ENV% && webpack --config webpack.%NODE_ENV%.js"
以下を実行すると。
set NODE_ENV=production&&npm run build
を実行すると、スクリプトは正しく実行されます。
念のため
console.log("production")
と同様に
console.log("development")
をそれぞれの
webpack.x.js
ファイル
という文字列がコンソールに2回表示されるのを確認しました。
echo
とファイルから1個
テスト内容
-
これは、VS Code でデフォルトのシェルを
cmd
ではなくPowerShell
関連
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】最大呼び出しスタックサイズ超過エラーとその修正方法とは?
-
[解決済み】npm 5で作成されたpackage-lock.jsonファイルはコミットするのでしょうか?
-
[解決済み] npm installの-saveオプションは何ですか?
-
[解決済み] インストールされているnpmパッケージのバージョンを検索する
-
[解決済み] npm package.jsonファイルのdependencies, devDependencies, peerDependenciesの違いは何ですか?
-
[解決済み] Bowerとnpmの違いは何ですか?
-
[解決済み] npmスクリプトへのコマンドライン引数の送信
-
[解決済み] Node.js/Windowsのエラーです。ENOENT, stat 'C:\Users﹑RTAppData﹑Roaming﹑npm'.
-
[解決済み] node.jsで「Error: spawn ENOENT」をデバッグするにはどうすればよいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Facebook Graph API のクエリで with=location を使用すると "Uncaught (in promise) undefined" というエラーが発生する。
-
[解決済み】フォームコントロールの値アクセサがない
-
[解決済み] Uncaught TypeError: 未定義のプロパティ 'top' を読み込めない
-
[解決済み】JavaScriptのisset()に相当するもの
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み】React、Uncaught ReferenceError。ReactDOMは定義されていません
-
[解決済み】WebpackとBabelで「このファイルタイプを扱うには適切なローダーが必要な場合があります。
-
[解決済み】Uncaught ReferenceError。Firebase は定義されていません。
-
[解決済み】TypeError: AngularJSで未定義のプロパティ'get'を読み取れない
-
[解決済み] WindowsでNODE_ENV=productionを設定するにはどうすればよいですか?