[英]Can pm2 run an 'npm start' script
有沒有辦法讓 pm2 運行 npm start 腳本,或者你只需要運行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
那些使用.json
文件之類的配置腳本來運行 pm2 進程的人可以使用npm start
或任何其他類似這樣的腳本 -
我的應用程序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"
}
]
}
更多細節在這里。
是的。 使用pm2 start npm --no-automation --name {app name} -- run {script name}
。 有用。 --no-automation
標志在那里,因為沒有它 PM2 在崩潰時不會重新啟動你的應用程序。
使用npm run
pm2 start npm --name "{app_name}" -- run {script_name}
我在下面編寫了 shell 腳本(名為start.sh
)。 因為我的package.json
有prestart
選項。 所以我想運行npm start
。
#!/bin/bash
cd /path/to/project
npm start
然后,通過pm2啟動start.sh
。
pm2 start start.sh --name appNameYouLike
我需要在 pm2 中的應用程序上運行特定的 npm 腳本(對於每個 env)在我的情況下,它是在我創建臨時/測試服務時
對我有用的命令(必須以這種方式轉發 args):
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"
希望有幫助
您需要在此處提供應用程序名稱,例如 myapp
pm2 start npm --name {appName} -- run {script name}
你可以通過
pm2 list
你也可以添加時間
pm2 restart "id" --log-date-format 'DD-MM HH:mm:ss.SSS'
或者
pm2 restart "id" --time
您可以通過以下方式檢查日志
pm2 log "id"
或者
pm2 log "appName"
獲取所有應用的日志
pm2 logs
是的,我們可以,現在 pm2 支持 npm start,--name 到物種應用程序名稱。
pm2 start npm --name "app" -- start
請參閱啟用集群:
pm2 start npm --name "AppName" -i 0 -- run start
你怎么認為?
如果您通過節點模塊而不是全局使用 PM2,則需要設置interpreter: 'none'
以使上述解決方案起作用。 相關文檔在這里。
在ecosystem.config.js
:
apps: [
{
name: 'myApp',
script: 'yarn',
args: 'start',
interpreter: 'none',
},
],
pm2 start npm --name "custom_pm2_name" -- run prod
"scripts": {
"prod": "nodemon --exec babel-node ./src/index.js"
}
當其他人沒有時,這對我有用
不幸的是,運行腳本start:prod
沒有運氣。
"scripts": {
"start:prod": "node index.js"
},
命令pm2 start npm -- run start:prod
崩潰
開始前不要忘記空格
pm2 start npm --[space]start
所以正確的命令是:
pm2 start npm -- start
不幸的是,pm2 似乎不支持您請求的確切功能https://github.com/Unitech/PM2/issues/1317 。
建議的替代方案是使用ecosystem.json
文件開始部署,其中可能包括生產和開發環境的設置。 但是,這仍然使用npm start
來引導您的應用程序。
pm2 start ./bin/www
可以跑步
如果你想部署多台服務器,你可以這樣做。 而不是 pm2 start npm -- start
PM2 版本 4.2.1
讓我們假設兩個場景:
1. npm start //server.js
pm2 start "npm -- start" --name myMainFile
2. npm run main //main.js
pm2 start "npm -- run main" --name myMainFile
要使用npm start
方法運行 PM2 並為其name
,請運行以下命令,
pm2 start npm --name "your_app_name" -- start
要通過為日志傳遞日期格式來運行它,
pm2 start npm --name "your_name" --log-date-format 'DD-MM HH:mm:ss.SSS' -- start
對於普通用戶
PM2 現在支持 npm start:
pm2 start npm -- start
要為 PM2 進程分配名稱,請使用“--name”選項:
pm2 start npm --name "your desired app name" -- start
對於 root 用戶
sudo pm2 start npm -- start
要為 PM2 進程分配名稱,請使用“--name”選項:
sudo pm2 start npm --name "your desired app name" -- start
現在,您可以在之后使用:
pm2 start npm -- start
關注https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319
是的,絕對可以通過優雅地使用 pm2 配置(json)文件非常有效地完成它。
"scripts": {
"start": "concurrently npm:server npm:dev",
"dev": "react-scripts start",
"build": "node ./scripts/build.js",
"eject": "react-scripts eject",
"lint": "eslint src server",
"shivkumarscript": "ts-node -T -P server/tsconfig.json server/index.ts"
}
假設我們要使用 pm2 實用程序運行名為“shivkumarscript”的腳本。 因此,我們的 pm2 配置文件應該如下所示,包含值為 'npm' 的 'script' 鍵和值為 'run' 的 'args' 鍵。 在我們的例子中,腳本名稱是“shivkumarscript”。
module.exports = {
apps: [
{
name: "NodeServer",
script: "npm",
automation: false,
args: "run shivkumarscript",
env: {
NODE_ENV: "development"
},
env_production: {
NODE_ENV: "production"
}
}
]
}
假設你已經在你的機器上安裝了 Node.js、NPM 和 PM2。 然后下面應該是通過 pm2 啟動應用程序的命令,它將依次運行 npm 腳本(在應用程序的 package.json 文件中提到的命令行):
對於生產環境:
pm2 start ecosystem.config.js --env production --only NodeServer
對於開發環境:
pm2 start ecosystem.config.js --only NodeServer
......還有Boooom! 伙計們
您可以將目錄更改為您的項目
cd /my-project
然后運行
pm2 start "npm run start" \\ run npm script from your package.json
在這里閱讀更多
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.