pm2에서 'npm start' 스크립트를 실행할 수 있습니까?
pm2가 npm 시작 스크립트를 실행할 수 있는 방법이 있습니까? 아니면 당신은 실행해야 합니다.pm2 start app.js
그래서 개발 중입니다.
npm start
그런 다음 pm2로 프로덕션에서 당신은 다음과 같은 것을 실행할 것입니다.
pm2 start 'npm start'
에서 이와 동등한 방법이 있습니다.forever
:
forever start -c "npm start" ./
PM2는 이제 npm 시작을 지원합니다.
pm2 start npm -- start
PM2 프로세스에 이름을 할당하려면 다음을 사용합니다.--name
옵션:
pm2 start npm --name "app name" -- 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"
}
]
}
자세한 내용은 여기에 있습니다.
사용하기npm run
pm2 start npm --name "{app_name}" -- run {script_name}
애플리케이션에서 특정 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 --no-automation --name {app name} -- run {script name}
.그건 효과가 있다.그--no-automation
플래그가 없으면 PM2가 앱을 다시 시작하지 않기 때문에 플래그가 있습니다.
내 앱처럼 여기에 앱 이름을 제공해야 합니다.
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
아래에 셸 스크립트를 작성했습니다(이름 지정).start.sh
. 왜냐하면 나의package.json
가지다prestart
선택.그래서 나는 달리고 싶습니다.npm start
.
#!/bin/bash
cd /path/to/project
npm start
그러면 시작.start.sh
오후 2시까지
pm2 start start.sh --name appNameYouLike
네, 이제 pm2는 npm start, --name to 종 앱 이름을 지원할 수 있습니다.
pm2 start npm --name "app" -- start
클러스터링을 사용하려면 을 참조하십시오.
pm2 start npm --name "AppName" -i 0 -- run start
당신은 어떻게 생각하나요?
프로젝트로 디렉토리를 변경할 수 있습니다.
cd /my-project
그 다음에 달려라
pm2 start "npm run start" \\ run npm script from your package.json
자세한 내용은 여기를
글로벌하게 사용하는 대신 노드 모듈을 통해 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"
}
이것은 다른 사람들이 하지 않았을 때 저에게 효과가 있었습니다.
일반 사용자용
PM2는 이제 npm 시작을 지원합니다.
pm2 start npm -- start
PM2 프로세스에 이름을 할당하려면 "--name" 옵션을 사용합니다.
pm2 start npm --name "your desired app name" -- start
루트 사용자의 경우
sudo pm2 start npm -- start
PM2 프로세스에 이름을 할당하려면 "--name" 옵션을 사용합니다.
sudo pm2 start npm --name "your desired app name" -- start
예, 우아하게 pm2 config (json) 파일을 사용하면 매우 효율적으로 작업할 수 있습니다.
꾸러미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'입니다.
ecosystem.config.json 파일
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 스크립트(애플리케이션 패키지에 언급된 명령줄)를 실행합니다.json 파일):
운영 환경의 경우:
pm2 start ecosystem.config.js --env production --only NodeServer
개발 환경의 경우:
pm2 start ecosystem.config.js --only NodeServer
...그리고 붐!여러분.
센트에서 잘 작동하고 있습니다.OS 7
PM2 버전 4.2.1
두 가지 시나리오를 살펴보겠습니다.
npm start //server.js
pm2 start "npm -- start" --name myMainFile
npm run main //main.js
pm2 start "npm -- run main" --name myMainFile
유감스럽게도, pm2는 당신이 요청한 https://github.com/Unitech/PM2/issues/1317 의 정확한 기능을 지원하지 않는 것 같습니다.
은 제된대다같습다니음과은안을 입니다.ecosystem.json
파일 운영 및 개발 환경에 대한 설정을 포함할 수 있는 배포 시작그러나 이는 여전히 사용 중입니다.npm start
응용프로그램을 부트스트랩합니다.
pm2 start ./bin/www
깡통 달리기
여러 서버를 배포하려는 경우 그렇게 할 수 있습니다.pm2 start npm -- start
시작하기 전에 공간을 잊지 마십시오.
pm2 start npm --[space]start
따라서 올바른 명령은 다음과 같습니다.
pm2 start npm -- start
를 사용하여 npm start
에 법과그을주것는것방▁it것▁and▁method를 부여하는 것.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 start npm -- start
다음은 https://github.com/Unitech/pm2/issues/1317#issuecomment-220955319 입니다.
먼저, 당신은 run.js 파일을 만들고 그 위에 아래 코드를 붙여넣어야 합니다.
const { spawn } = require('child_process');
//here npm.cmd for windows.for others only use npm
const workerProcess = spawn('npm.cmd', ['start']);
workerProcess.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
workerProcess.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
workerProcess.on('close', function (code) {
console.log('child process exited with code ' + code);
});
이 파일을 pm2로 실행합니다.
pm2 start run.js
- 리스트 항목
언급URL : https://stackoverflow.com/questions/31579509/can-pm2-run-an-npm-start-script
'programing' 카테고리의 다른 글
VBA 오류 1004 - 범위 클래스의 메서드 선택 실패 (0) | 2023.06.24 |
---|---|
MongoDB를 사용하여 Heroku에서 나만의 Parse Server를 호스팅하려면 어떻게 해야 합니까? (0) | 2023.06.24 |
Spring JDBC JDBC 드라이버 클래스 [oracle.jdbc.driver]를 로드할 수 없습니다.오라클 드라이버] (0) | 2023.06.24 |
계산된 속성이 변경되어도 부트스트랩 구성 요소가 변경되지 않음 (0) | 2023.06.24 |
H2가 내 Spring Boot 앱에서 테이블을 생성/업데이트하지 않습니다.내 엔티티에 문제가 있나요? (0) | 2023.06.24 |