如何使用 pm2 观看和重新加载 ExpressJS 应用程序
How to watch and reload an ExpressJS app with pm2
我正在开发一个 ExpressJS 应用程序。
我使用pm2加载它:
myapp$ pm2 start bin/www
这很好用,只是添加 --watch
标志似乎不起作用;每次我更改 JS 源代码时,我都需要明确地重新启动它以使我的更改生效:
myapp$ pm2 restart www
我做错了什么?我在非 ExpressJS 应用程序中尝试了 --watch
标志,它按预期工作。
看到这个
问题是相对于pm2 watch的路径,如果是相对于执行文件或者项目的实际根路径。
您需要为 --watch 选项指定应用程序位置
myapp$ pm2 start bin/www --watch /your/location/to/app
2021 年 2 月
现在情况发生了一些变化。下面给出了我项目中的完整示例。以下作品:
1。创建配置文件。文件:ecosystem.config.js
module.exports = {
apps: [
{
name: 'api',
script: './bin/www', // --------------- our node start script here like index.js
// ------------------------------------ watch options - begin
watch: ['../'],
watch_delay: 1000,
ignore_watch: ['node_modules'],
watch_options: {
followSymlinks: false,
},
// ------------------------------------ watch options - end
env: {
NODE_ENV: 'development',
PORT: 3001,
DEBUG: 'api:*',
MONGODB_URI:
'mongodb://localhost:27017/collection1?readPreference=primary&ssl=false',
},
env_production: {
NODE_ENV: 'production',
},
},
],
deploy: {
production: {
// user: "SSH_USERNAME",
// host: "SSH_HOSTMACHINE",
},
},
};
2。 运行 服务器(开发/生产)
pm2 start ecosystem.config.js
pm2 start ecosystem.config.js --env production
3。更多信息:
我从未设法使默认手表设置在 Ubuntu 中起作用,但是通过高级手表选项使用轮询有效:
"watch": true,
"ignore_watch" : ["node_modules"],
"watch_options": {
"usePolling": true,
"interval": 1000
}
更多信息:
https://github.com/buunguyen/PM2/blob/master/ADVANCED_README.md#watch--restart
我正在开发一个 ExpressJS 应用程序。 我使用pm2加载它:
myapp$ pm2 start bin/www
这很好用,只是添加 --watch
标志似乎不起作用;每次我更改 JS 源代码时,我都需要明确地重新启动它以使我的更改生效:
myapp$ pm2 restart www
我做错了什么?我在非 ExpressJS 应用程序中尝试了 --watch
标志,它按预期工作。
看到这个
问题是相对于pm2 watch的路径,如果是相对于执行文件或者项目的实际根路径。
您需要为 --watch 选项指定应用程序位置
myapp$ pm2 start bin/www --watch /your/location/to/app
2021 年 2 月
现在情况发生了一些变化。下面给出了我项目中的完整示例。以下作品:
1。创建配置文件。文件:ecosystem.config.js
module.exports = {
apps: [
{
name: 'api',
script: './bin/www', // --------------- our node start script here like index.js
// ------------------------------------ watch options - begin
watch: ['../'],
watch_delay: 1000,
ignore_watch: ['node_modules'],
watch_options: {
followSymlinks: false,
},
// ------------------------------------ watch options - end
env: {
NODE_ENV: 'development',
PORT: 3001,
DEBUG: 'api:*',
MONGODB_URI:
'mongodb://localhost:27017/collection1?readPreference=primary&ssl=false',
},
env_production: {
NODE_ENV: 'production',
},
},
],
deploy: {
production: {
// user: "SSH_USERNAME",
// host: "SSH_HOSTMACHINE",
},
},
};
2。 运行 服务器(开发/生产)
pm2 start ecosystem.config.js
pm2 start ecosystem.config.js --env production
3。更多信息:
我从未设法使默认手表设置在 Ubuntu 中起作用,但是通过高级手表选项使用轮询有效:
"watch": true,
"ignore_watch" : ["node_modules"],
"watch_options": {
"usePolling": true,
"interval": 1000
}
更多信息:
https://github.com/buunguyen/PM2/blob/master/ADVANCED_README.md#watch--restart