Я знаю, что есть ответы на этот вопрос, но я не хочу создавать еще один файл конфигурации, загружать всю конфигурацию и запускать процесс pm2.
Project Structure
-----------------
.env
index.js -> server is listening in this file
routes/
models/
middleware/
startup/
package.json
...
Внутри package.json
{
"name": "eventbooking",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"start": "node -r dotenv/config index.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@hapi/joi": "^15.0.3",
"bcryptjs": "^2.4.3",
"compression": "^1.7.4",
"dotenv": "^8.0.0",
"express": "^4.17.1",
"express-async-errors": "^3.1.1",
"helmet": "^3.18.0",
"joi-objectid": "^2.0.0",
"jsonwebtoken": "^8.5.1",
"mongoose": "^5.5.14",
"winston": "^3.2.1"
}
}
Как видно из моего файла package.json , я загружаю узел -r dotenv / config index.js файл из scripts> start
Когда я запускаю локально со следующей командой
npm start
Проект работает полностью нормально.
Теперь я развернул проект на сервере, и там, если я вручную запустил
npm start
, то работает нормально.
Когда я устанавливаю PM2 на Ubuntu Server в производственном режиме и выполняю следующие шаги, то он не работает.
Шаг 1. Режим внутри папки проекта в корневом каталоге и
pm2 start index.js --name "Event Booking"
Затем получаем следующее
App name │ id │ version │ mode │ pid │ status │ restart │ uptime │ cpu │ mem │ user │ watching │
├──────────┼────┼─────────┼──────┼───────┼────────┼─────────┼────────┼─────┼──────────┼──────┼──────────┤
│ index │ 0 │ 1.0.0 │ fork │ 29897 │ online │ 0 │ 0s │ 0% │ 3.7 MB │ root │ disabled
Но проект не работает.В чем проблема.
Даже когда я запускаю следующее как
pm2 start -r dotenv/config index.js --name 'Event Booking'
Затем получаю ошибку как
Ошибка: неизвестный параметр `-r '
Любое другое решение для запуска скрипта с pm2