programing tip

pm2가 'npm start'스크립트를 실행할 수 있습니까

itbloger 2020. 6. 10. 22:40
반응형

pm2가 'npm start'스크립트를 실행할 수 있습니까


pm2가 npm 시작 스크립트를 실행하는 방법이 있습니까 아니면 그냥 실행해야합니까? pm2 start app.js

그래서 개발에서

npm start

그런 다음 pm2를 사용한 프로덕션에서는 다음과 같은 것을 실행합니다.

pm2 start 'npm start'

영원히 이것을하는 동등한 방법이 있습니다

forever start -c "npm start" ./


PM2는 이제 npm start를 지원합니다.

pm2 start npm -- start

.jsonpm2 프로세스를 실행하기 위해 파일 과 같은 구성 스크립트를 사용하는 사람들은 다음과 같은 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"
        }
    ]
}

자세한 내용은 여기를 참조하십시오 .


예. 사용하십시오 pm2 start npm --no-automation --name {app name} -- run {script name}. 효과가있다. --no-automation플래그가 이 충돌 할 때 PM2 앱을 다시 시작하지 않습니다 그것을하지 않고 있기 때문이다.


아래에 셸 스크립트를 작성했습니다 ( start.sh). 옵션 package.json있기 때문에 prestart. 그래서 나는 달리고 싶다 npm start.

#!/bin/bash
cd /path/to/project
npm start

그런 다음 start.shpm2 부터 시작하십시오 .

pm2 start start.sh --name appNameYouLike

쓰다 npm run

pm2 start npm --name "{app_name}" -- run {script_name}


클러스터링 활성화를 참조하십시오.

pm2 start npm --name "AppName" -i 0 -- run start

어떻게 생각해?


그렇습니다. 이제 pm2는 npm start, --name to species 앱 이름을 지원할 수 있습니다.

pm2 start npm --name "app" -- start

불행히도 스크립트를 실행하면 운이 없습니다 start:prod.

"scripts": {
   "start:prod": "node index.js"
},

명령 pm2 start npm -- run start:prod충돌


불행히도 pm2는 https://github.com/Unitech/PM2/issues/1317 요청한 정확한 기능을 지원하지 않는 것 같습니다 .

The alternative proposed is to use a ecosystem.json file Getting started with deployment which could include setups for production and dev environments. However, this is still using npm start to bootstrap your app.


Don't forget the space before start

pm2 start npm --[space]start

so the correct command is:

pm2 start npm -- start

Now, You can use after:

pm2 start npm -- start

Follow by https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319


pm2 start ./bin/www

can running

if you wanna multiple server deploy you can do that. instead of pm2 start npm -- start

참고URL : https://stackoverflow.com/questions/31579509/can-pm2-run-an-npm-start-script

반응형