pm2がnpm起動スクリプトを実行する方法はありますか、それとも実行する必要がありますか pm2 start app.js
だから開発中
npm start
次に、pm2を使用した本番環境では、次のように実行します。
pm2 start 'npm start'
これを行うには同等の方法がありますforever
:
forever start -c "npm start" ./
pm2がnpm起動スクリプトを実行する方法はありますか、それとも実行する必要がありますか pm2 start app.js
だから開発中
npm start
次に、pm2を使用した本番環境では、次のように実行します。
pm2 start 'npm start'
これを行うには同等の方法がありますforever
:
forever start -c "npm start" ./
回答:
PM2がnpm startをサポートするようになりました:
pm2 start npm -- start
PM2プロセスに名前を割り当てるには、--name
オプションを使用します。
pm2 start npm --name "app name" -- start
--name "app"
が、それはそれをnpmに設定しました。
npm start
プロセスファイルに設定する方法を知っていますか?
.json
ファイルのような構成スクリプトを使用してpm2プロセスを実行している人は、次のnpm start
ようなスクリプトを使用できます-
my-app-pm2.json
{
"apps": [
{
"name": "my-app",
"script": "npm",
"args" : "start"
}
]
}
その後、単に-
pm2 start my-app-pm2.json
編集 -この構成スクリプトが親ディレクトリにあり、サブディレクトリでアプリを起動する場合の使用例を処理するには、cwd
属性を使用します。
私たちのアプリがnested-app
この設定ファイルに相対的なサブディレクトリにあると仮定すると-
{
"apps": [
{
"name": "my-nested-app",
"cwd": "./nested-app",
"script": "npm",
"args": "start"
}
]
}
詳細はこちら。
start
スクリプト情報を含むpackage.jsonは、それらの1つにあります。この要点を参照してください:gist.github.com/gianpaj/04c5680a8275616aac5e46374e07f673これを実行すると、どこnpm
から実行するべきかわかりません。Thx
cwd
属性を使用できます。編集済みの回答を確認してください:)
sudo pm2 start config.json
はい。を使用しpm2 start npm --no-automation --name {app name} -- run {script name}
ます。できます。これ--no-automation
がないと、PM2はクラッシュしたときにアプリを再起動しません。
pm2 --help | grep 'no-autom'
はバージョン1.0.2で1行を返します
以下にシェルスクリプトを記述しました(名前はstart.sh
)。私にpackage.json
はprestart
選択肢があるからです。だから走りたいnpm start
。
#!/bin/bash
cd /path/to/project
npm start
次に、start.sh
pm2 から始めます。
pm2 start start.sh --name appNameYouLike
startOrRestart
コマンドの使用時には機能しません。
はい、できます。pm2がnpm startをサポートするようになりました。--nameから種アプリ名に。
pm2 start npm --name "app" -- start
クラスタリングを有効にするために参照してください:
pm2 start npm --name "AppName" -i 0 -- run start
どう思いますか?
-i 0
ますか?
特定のnpmスクリプトをpm2のアプリで(envごとに)実行する必要がありました。私の場合、ステージング/テストサービスを作成したときです。
私のために働いたコマンド(引数はそのように転送される必要があります):
pm2 start npm --name "my-app-name" -- run "npm:script"
例:
pm2 start npm --name "myApp" -- run "start:test"
pm2 start npm --name "myApp" -- run "start:staging"
pm2 start npm --name "myApp" -- run "start:production"
それが役に立てば幸い
pm2 start npm --name "custom_pm2_name" -- run prod
"scripts": {
"prod": "nodemon --exec babel-node ./src/index.js"
}
他の人がしなかったときにこれは私のために働きました
開始前にスペースを忘れないでください
pm2 start npm --[space]start
したがって、正しいコマンドは次のとおりです。
pm2 start npm -- start
残念ながら、pm2はリクエストされた正確な機能をサポートしていないようですhttps://github.com/Unitech/PM2/issues/1317。
提案された代替案は、本番環境と開発環境のセットアップを含む可能性のあるecosystem.json
ファイル「デプロイメントの開始」を使用することです。ただし、これはまだnpm start
アプリのブートストラップに使用されています。
However, this is still using npm start to bootstrap your app.
実際にnpm start
使用して実行できますpm2
か?
今、あなたは後に使用することができます:
pm2 start npm -- start
フォローするhttps://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
PM2バージョン4.2.1
次の2つのシナリオを考えてみましょう。
1. npm start //server.js
pm2 start "npm -- start" --name myMainFile
2. npm run main //main.js
pm2 start "npm -- run main" --name myMainFile