Nvm和Npm和Pm2的关系和使用说明

一、三者关系说明

nvm、npm 和 pm2 在 Node.js 生态系统中扮演着不同的角色,但它们之间存在一定的关联。下面是每个工具的作用以及它们之间的关系:
1. nvm (Node Version Manager)
• nvm 是一个用于管理多个 Node.js 版本的工具。 它允许用户在不同的项目中切换 Node.js 的版本,这对于开发人员来说非常有用,因为不同的项目可能依赖于不同版本的 Node.js。nvm 也负责安装和管理 npm(在某些情况下)。
2. npm (Node Package Manager)
• npm 是 Node.js 的默认包管理器 ,用于安装、更新、卸载和管理 Node.js 应用程序中的软件包或依赖项。npm 通常与 Node.js 一起安装,但在一些环境中,你可能需要使用 nvm 来确保 npm 的版本与你的 Node.js 版本兼容。
3. pm2 (Process Manager)
• pm2 是一个进程管理器,用于管理 Node.js 应用程序的运行 。它可以确保应用程序即使在崩溃后也能自动重启,提供应用的监控、日志管理和负载均衡等功能。pm2 不依赖于 nvm 或 npm 运行,但它可以通过 npm 安装 (npm install -g pm2 ) ,并且可以在由 nvm 管理的不同 Node.js 版本上运行。

关系总结:
• nvm 主要用于node.js版本控制和管理 ,确保你能够使用正确的 Node.js 和 npm 版本。
• npm 用于安装和管理 Node.js 应用的依赖包 ,它附带在 Node.js 安装中,但也可以通过 nvm 更新。
• pm2 用于在生产环境中管理 Node.js 应用的运行状态 ,确保高可用性和稳定性,它是一个独立的工具,通过 npm 安装。

通常情况下,当你开始一个新的 Node.js 项目时,你可能会先使用 nvm 来选择适合项目的 Node.js 版本,然后使用 npm 来安装项目依赖,最后在生产环境中使用 pm2 来管理你的应用。这三者共同构成了一个完整的 Node.js 开发和部署流程。

二、NVM(Node Version Manager)是一个跨平台的命令行工具,用于管理多个Node.js版本。以下是NVM的一些常见命令及其用途:

1. nvm install <version>
•  下载并安装指定版本的Node.js。<version>可以是具体的版本号,如14.17.0,或者特殊关键词如latest或latest-npm。
2. nvm use <version>
•  切换到已经安装的某个Node.js版本。
3. nvm ls 或 nvm list
•  列出所有已安装的Node.js版本。
4. nvm ls-remote 或 nvm list-remote
•  列出远程可用的Node.js版本,这些是NVM可以下载和安装的版本。
5. nvm uninstall <version>
•  卸载指定版本的Node.js。
6. nvm current
•  显示当前正在使用的Node.js版本。
7. nvm alias <alias> <version>
•  创建一个Node.js版本的别名,例如nvm alias default 14.17.0。
8. nvm on
•  启用NVM的自动激活功能,当进入项目目录时自动使用该项目的.nvmrc文件指定的Node.js版本。
9. nvm off
•  禁用NVM的自动激活功能。
10. nvm --version 或 nvm -v
•  显示NVM自身的版本。
11. nvm node_mirror <url>
•  设置Node.js的下载镜像,通常用于提高下载速度,特别是对于非美国地区的用户。
12. nvm npm_mirror <url>
•  设置NPM包的下载镜像。
13. nvm exec <version> <command>
•  使用指定版本的Node.js执行命令。
14. nvm run <version> <script>
•  使用指定版本的Node.js运行脚本。
15. nvm prune
•  清理不再存在的Node.js版本的软链接。
16. nvm help 或 nvm --help
•  显示NVM的帮助信息。
17. nvm install-latest-npm
•  安装最新的NPM版本,这通常是在安装特定Node.js版本后使用,以确保NPM是最新的。
这些命令可以帮助你有效地管理和使用多个Node.js版本,适应不同的项目需求。

三、npm(Node Package Manager)是 Node.js 的默认包管理器,用于安装、更新、卸载和管理 JavaScript 包。以下是一些常用的 npm 命令及其用法:

1. nvm install <version>
•  下载并安装指定版本的Node.js。<version>可以是具体的版本号,如14.17.0,或者特殊关键词如latest或latest-npm。
2. nvm use <version>
•  切换到已经安装的某个Node.js版本。
3. nvm ls 或 nvm list
•  列出所有已安装的Node.js版本。
4. nvm ls-remote 或 nvm list-remote
•  列出远程可用的Node.js版本,这些是NVM可以下载和安装的版本。
5. nvm uninstall <version>
•  卸载指定版本的Node.js。
6. nvm current
•  显示当前正在使用的Node.js版本。
7. nvm alias <alias> <version>
•  创建一个Node.js版本的别名,例如nvm alias default 14.17.0。
8. nvm on
•  启用NVM的自动激活功能,当进入项目目录时自动使用该项目的.nvmrc文件指定的Node.js版本。
9. nvm off
•  禁用NVM的自动激活功能。
10. nvm --version 或 nvm -v
•  显示NVM自身的版本。
11. nvm node_mirror <url>
•  设置Node.js的下载镜像,通常用于提高下载速度,特别是对于非美国地区的用户。
12. nvm npm_mirror <url>
•  设置NPM包的下载镜像。
13. nvm exec <version> <command>
•  使用指定版本的Node.js执行命令。
14. nvm run <version> <script>
•  使用指定版本的Node.js运行脚本。
15. nvm prune
•  清理不再存在的Node.js版本的软链接。
16. nvm help 或 nvm --help
•  显示NVM的帮助信息。
17. nvm install-latest-npm

四、PM2 是一个强大的进程管理器,主要用于 Node.js 应用的守护进程化,但它同样支持管理其他语言编写的后台应用。PM2 提供了一系列的命令来帮助你启动、停止、重启、管理和监控应用。以下是一些常用的 PM2 命令:

1. pm2 start <script>
•  启动一个应用。<script> 是应用的入口文件,如 app.js 或 bin/www。
2. pm2 start <script> -i <instances>
•  以集群模式启动应用,<instances> 表示要启动的应用实例数。
3. pm2 start <script> --name "<name>"
•  启动应用并给它一个特定的名字。
4. pm2 start <script> --watch
•  启动应用并监视文件更改,当文件更改时自动重启应用。
5. pm2 stop <id|name>
•  停止一个应用,<id|name> 可以是应用的 ID 或名称。
6. pm2 restart <id|name>
•  重启一个应用。
7. pm2 delete <id|name>
•  删除一个应用的进程和配置。
8. pm2 list 或 pm2 ls
•  列出所有正在运行的应用。
9. pm2 show <id|name>
•  显示一个应用的详细信息。
10. pm2 logs <id|name> 或 pm2 log <id|name>
•  显示一个应用的日志。
11. pm2 flush
•  清空所有应用的日志文件。
12. pm2 monit
•  监控所有应用的 CPU 和内存使用情况。
13. pm2 update
•  保存当前进程,终止 PM2,然后重新启动,通常用于更新 PM2 的版本。
14. pm2 save
•  保存当前运行的应用列表和环境变量到 PM2 的配置中。
15. pm2 resurrect
•  加载之前保存的应用列表和环境变量,恢复之前的状态。
16. pm2 startup
•  创建开机自启动的脚本,确保应用在系统启动时自动启动。
17. pm2 ecosystem
•  生成一个 ecosystem.config.js 文件,用于配置多个应用的启动。
18. pm2 gracefulReload <id|name>
•  以优雅的方式重新加载应用,适用于集群模式。
19. pm2 scale <name> <num_instances>
•  调整应用的实例数量。
20. pm2 env <id|name>
•  显示应用的环境变量。
21. pm2 set <id|name> <key> <value>
•  设置应用的环境变量。
22. pm2 unset <id|name> <key>
•  移除应用的环境变量。
相关推荐
qbbmnnnnnn9 分钟前
【CSS Tricks】如何做一个粒子效果的logo
前端·css
唐家小妹11 分钟前
【flex-grow】计算 flex弹性盒子的子元素的宽度大小
前端·javascript·css·html
涔溪13 分钟前
uni-app环境搭建
前端·uni-app
安冬的码畜日常17 分钟前
【CSS in Depth 2 精译_032】5.4 Grid 网格布局的显示网格与隐式网格(上)
前端·css·css3·html5·网格布局·grid布局·css网格布局
洛千陨17 分钟前
element-plus弹窗内分页表格保留勾选项
前端·javascript·vue.js
小小199219 分钟前
elementui 单元格添加样式的两种方法
前端·javascript·elementui
前端没钱39 分钟前
若依Nodejs后台、实现90%以上接口,附体验地址、源码、拓展特色功能
前端·javascript·vue.js·node.js
爱喝水的小鼠44 分钟前
AJAX(一)HTTP协议(请求响应报文),AJAX发送请求,请求问题处理
前端·http·ajax
dgiij1 小时前
AutoX.js向后端传输二进制数据
android·javascript·websocket·node.js·自动化
叫我:松哥1 小时前
基于机器学习的癌症数据分析与预测系统实现,有三种算法,bootstrap前端+flask
前端·python·随机森林·机器学习·数据分析·flask·bootstrap