pm2와 serve의 한 페이지 응용 식용 안내
구덩이
pm2
프로세스 관리, serve
정적 파일 서버 구성은 다음과 같습니다.// pm2.config.js
module.exports = {
apps: [
// ...
{
name: 'music-app',
script: 'serve',
args: '-p 8080 -s build',
}
]
}
문제는 다음과 같습니다.
serve
직접 서비스 오픈 문제 없음질문 찾기
수행
pm2 show music-app
결과는 다음과 같습니다.➜ hehehe git:(master) ✗ pm2 show music-app
Describing process with id 1 - name music-app
┌───────────────────┬──────────────────────────────────────────────────┐
│ status │ online │
│ name │ music-app │
│ restarts │ 69 │
│ uptime │ 3s │
│ script path │ /usr/local/lib/node_modules/pm2/lib/API/Serve.js │
│ script args │ -p 8080 -s build │
│ error log path │ /Users/xixi/.pm2/logs/music-app-error-1.log │
│ out log path │ /Users/xixi/.pm2/logs/music-app-out-1.log │
│ pid path │ /Users/xixi/.pm2/pids/music-app-1.pid │
│ interpreter │ node │
│ interpreter args │ N/A │
│ script id │ 1 │
│ exec cwd │ /Users/xixi/work/hehehe │
│ exec mode │ fork_mode │
│ node.js version │ 8.6.0 │
│ watch & reload │ ✘ │
│ unstable restarts │ 0 │
│ created at │ 2017-10-11T10:07:33.119Z │
└───────────────────┴──────────────────────────────────────────────────┘
emmmm, 주의
script path
, 분명히 실행하는 것은 우리가 원하는 것이 아니다serve
.넘어지다왜 이러지?
원인은 여기에 있다. 찔러라!pm2는 2.4.0 버전 이후 정적 파일 서버를 직접 열 수 있습니다. 듣기에는 아름답지만!!!정적 서버를 열라는 명령도
serve
이기 때문에 우리는 원하는 nodejsserve
패키지로 서버를 열 수 있는 것이 아니라pm2 내장 기능을 사용했다.내장된 정적 파일 서비스 기능이 단일 페이지에 최적화되지 않았기 때문에 이러한 문제가 발생할 수 있습니다.두 가지 솔루션
serve
패키지 실행 파일의 경로를 직접 지정합니다: // pm2.config.js
const path = require('path')
module.exports = {
apps: [
// ...
{
name: 'music-app',
script: path.resolve(__dirname, './node_modules/serve/bin/serve.js'),
args: '-p 8080 -s build',
}
]
}
serve
에 별명을 지어줍니다. 예를 들어 수정.bashrc
.그런 다음 다음
pm2 show music-app
을 수행합니다. 결과는 다음과 같습니다.➜ hehehe git:(master) ✗ pm2 show music-app
Describing process with id 1 - name music-app
┌───────────────────┬────────────────────────────────────────────────────────────┐
│ status │ online │
│ name │ music-app │
│ restarts │ 0 │
│ uptime │ 8s │
│ script path │ /Users/xixi/work/hehehe/node_modules/serve/bin/serve.js │
│ script args │ build/ -s -p 3030 │
│ error log path │ /Users/xixi/.pm2/logs/music-app-error-1.log │
│ out log path │ /Users/xixi/.pm2/logs/music-app-out-1.log │
│ pid path │ /Users/xixi/.pm2/pids/music-app-1.pid │
│ interpreter │ node │
│ interpreter args │ N/A │
│ script id │ 1 │
│ exec cwd │ /Users/xixi/work/hehehe │
│ exec mode │ fork_mode │
│ node.js version │ 8.6.0 │
│ watch & reload │ ✘ │
│ unstable restarts │ 0 │
│ created at │ 2017-10-11T10:11:23.846Z │
└───────────────────┴────────────────────────────────────────────────────────────┘
보시다시피
script path
이미 우리가 원하는 경로이고 문제가 해결되었다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.