次のスニペットに示すように、package.json で多数のビルドおよび実行タスクを定義した、反応する frontendapp があります。
"scripts": {
"start": "env-cmd -f .env.dev react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"build:dev": "env-cmd -f .env.dev npm run build",
"build:test": "env-cmd -f .env.test npm run build",
"build:prep": "env-cmd -f .env.prep npm run build",
"build:prod": "env-cmd -f .env.prod npm run build",
"start-dev-server": "env-cmd -f .env.dev node server/server.js",
"start-test-server": "env-cmd -f .env.test node server/server.js",
"start-prep-server": "env-cmd -f .env.prep node server/server.js",
"start-server": "env-cmd -f .env.prod node server/server.js"
},
私の目標は、「npm run start-server」を実行する必要がある実行構成に基づいて、pm2 ツールを使用してアプリを実行することです。この実行は、上記のスニペットの最後の行である「env-cmd -f .env.prod node server/server.js」を内部的に実行する必要があります。
上記のスケッチされたシナリオを次のように実現するために、pm2 構成ファイル、つまり my_config.json を作成しました。
my_config.json:
{
"apps": [
{
"name": "ReactFrontEndApp",
"script": "npm",
"args": "run start-server"
}
]
}
最後に、コマンド コンソールで次のコマンドを発行します。
pm2 start my_config.json
上記の pm2 コマンドが発行されると、私のアプリケーションは pm2 list コマンド出力の下にリストされます。それにもかかわらず、pm2 ツールはまた、コマンド コンソールを次から次へとポップアップし始めます (前のコンソールがフェードアウトしてから、次のコンソールが表示されます)。その間、ブラウザで https://localhost:3000 でアプリケーションをテストしましたが、ブラウザはアプリケーションをまったく表示しません (つまり、見つかりません)。結果として、pm2 stop コマンドを使用してアプリケーションを停止する必要があります。
質問: my_config.json ファイルに欠けている可能性のあるものはありますか? これにより、コマンド コンソールが連続して開かれる可能性があります。何が間違っている可能性がありますか?