Я новичок в NodeJS, но по некоторым причинам мне нужно использовать это приложение: https://github.com/ZitRos/save-analytics-from-content-blockers
Я клонировал репозиторий, установил необходимые модули с помощью npm установить, и я могу запустить приложение с помощью команды npm start.
Поскольку мне нужно запустить приложение при загрузке, и я хочу использовать его в нескольких потоках, я установил и настроил PM2 для этого, и я использую этот ecosystem.config. js:
module.exports = {
apps : [{
name: 'Analytics Proxy',
script: './src/api.js',
cwd: '/server/proyects/analytics_proxy/',
// Options reference: https://pm2.keymetrics.io/docs/usage/application-declaration/
interpreter_args: '-r esm',
instances: 1,
exec_mode: 'cluster',
autorestart: true,
watch: true,
max_memory_restart: '256M',
env: {
NODE_ENV: 'production'
},
}],
};
При первой попытке кластер работал без проблем даже с 4 экземплярами, но после перезагрузки я заметил что кластер не загрузится снова. После просмотра журналов я обнаружил, что при поиске модуля ESM произошла ошибка:
Error: Cannot find module 'esm'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:692:17)
at Module._preloadModules (internal/modules/cjs/loader.js:901:12)
at preloadModules (internal/bootstrap/node.js:602:7)
at startup (internal/bootstrap/node.js:273:9)
at bootstrapNodeJSCore (internal/bootstrap/node.js:623:3)
Я попытался установить модуль глобально и не решил проблему, но в любом случае странно, потому что в Режим Fork запускается без проблем даже после перезагрузки, и если я удаляю всю папку /root.pm2/, она снова работает в кластерном режиме.
Также Если я использую команду обновления pm2, иногда она снова работает , Обновление PM2
Кто-нибудь знает, как я могу решить эту проблему?.
С уважением, и спасибо!