Windows用pm2部署node.js项目

Windows上pm2启动命令不生效

按照常规启动命令应该如下,但是发现不生效

shell 复制代码
pm2 start npm --name "project-name" -- start

具体如下,可以看到状态都是stopped

shell 复制代码
$ pm2 start npm --name "chatgpt-next-web" -- start
[PM2] Starting F:\PROGRAMFILES\NODEJS\NPM.CMD in fork_mode (1 instance)
[PM2] Done.
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0  │ chatgpt-next-web   │ fork     │ 8    │ stopped   │ 0%       │ 0b       │
│ 1  │ chatgpt-next-web   │ fork     │ 1    │ stopped   │ 0%       │ 0b       │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘

后面参考了这篇文章:https://pm2.fenxianglu.cn/docs/start#启动-npmyarnpnpm-应用 的方法才生效,猜测是Windows和Linux环境的差异导致的。

启动 npm/yarn/pnpm 应用

npm 为例:

shell 复制代码
$ pm2 start -n demo npm -- run dev

警告:上面这种方式仅适用到 linux 系统,window 系统无效且报错

不过 window 系统可以这样

项目根目录创建 ecosystem.config.js 配置:

js 复制代码
module.exports = {
  apps: [
    {
      name: "demo",
      cwd: "./",
      script:
        "C:\\Users\\zhangsan\\AppData\\Roaming\\nvm\\v16.16.0\\node_modules\\npm\\bin\\npm-cli.js", // npm-cli.js路径
      args: "run dev",
    },
  ],
};

项目根目录执行命令:

shell 复制代码
$ pm2 start

另一种方式,不适应所有版本,了解下即可:

项目根目录创建 launch.js 内容:

js 复制代码
const exec = require("child_process").exec;
exec("npm run dev", { windowsHide: true });

启动

shell 复制代码
$ pm2 start ./launch.js

测试使用 ecosystem.config.js 配置启动

1.同上,项目根目录创建 ecosystem.config.js,并修改实际路径;

2.运行 pm2 start

shell 复制代码
$ pm2 start
[PM2] Applying action restartProcessId on app [chatgpt-next-web](ids: [ 0, 1 ])
[PM2] [chatgpt-next-web](0) ✓
[PM2] [chatgpt-next-web](1) ✓
┌────┬────────────────────┬──────────┬──────┬───────────┬──────────┬──────────┐
│ id │ name               │ mode     │ ↺    │ status    │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────┼───────────┼──────────┼──────────┤
│ 0  │ chatgpt-next-web   │ fork     │ 8    │ online    │ 0%       │ 44.0mb   │
│ 1  │ chatgpt-next-web   │ fork     │ 16   │ stopped   │ 0%       │ 0b       │
└────┴────────────────────┴──────────┴──────┴───────────┴──────────┴──────────┘

可以看到有一个状态已经变成online 了。

ps:需要注意 ,用这种会弹cmd窗口,一开始会弹好几次,最后只剩下一个还是两个,如果你把他们都关掉,它立刻又会弹出来一个,感觉有点像是守护进程,那个窗口偶尔能看到 next-router-worker 为标题。

扩展:pm2常用命令

shell 复制代码
# 启动应用
pm2 start
# 停止某个应用
pm2 stop name
# 删除某个应用
pm2 delete name
# 查看应用列表
pm2 list
# 查看各应用状态
pm2 status
# 查看日志,可指定应用
pm2 log [name]
相关推荐
chusheng18402 小时前
2025最新版!Windows Python3 超详细安装图文教程(支持 Python3 全版本)
windows·python·python3下载·python 安装教程·python3 安装教程
海天鹰2 小时前
C盘瘦身?
windows
chxii2 小时前
1.13使用 Node.js 操作 SQLite
数据库·sqlite·node.js
英杰.王3 小时前
深入 Java 泛型:基础应用与实战技巧
java·windows·python
tiandyoin3 小时前
如何给 C:\Windows\WinSxS\ 瘦身?
c语言·开发语言·windows
2501_915374354 小时前
Neo4j 图数据库安装教程(2024最新版)—— Windows / Linux / macOS 全平台指南
数据库·windows·neo4j
程序猿小D6 小时前
第32节 Node.js 全局对象
linux·vscode·node.js·编辑器·vim
z_y_j2299704386 小时前
Node.js下载安装及环境配置教程
node.js
不喝可乐_7 小时前
Node.js 检测视频链接是否可以播放(批量检测)
node.js·音视频
alphageek87 小时前
【2025最新版】Node.js详细安装配置教程(Windows系统)附安装包
windows·其他·node.js