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>
•  移除应用的环境变量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49854.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于微信小程序的自习室选座系统/基于Java的自习室选座系统/自习室管理系统的设计与实现

获取源码联系方式请查看文章结尾&#x1f345; 摘要 自习室选座是学校针对用户必不可少的一个部分。在学校的整个过程中&#xff0c;学生担负着最重要的角色。为满足如今日益复杂的管理需求&#xff0c;各类微信小程序自习室选座也在不断改进。本课题所设计的小程序自习室选座系…

【C#】Visual Studio2022打包依赖第三方库的winForm程序为exe

0.简介 IDE&#xff1a;VS2022 平台&#xff1a;C# .NetFramework4.7.2 WinForm界面 有GDAL、EEplus第三方库的依赖&#xff0c;所以在其他未安装环境的电脑中功能无法使用。 1. 安装 1.1 运行文件输出 在VS扩展中选择管理扩展&#xff0c;安装&#xff1a;Microsoft Visua…

SpringBoot上传超大文件导致OOM,完美问题解决办法

问题描述 报错: Caused by: java.lang.OutOfMemoryError at java.io.ByteArrayOutputStream.hugeCapacity(ByteArrayOutputStream.java:123) ~[?:1.8.0_381] at java.io.ByteArrayOutputStream.grow(ByteArrayOutputStream.java:117) ~[?:1.8.0_381] at java.…

Android 更换applicationId 后 微信没有回调

1、解决办法&#xff08;代码如下&#xff09;&#xff1a; 使用 <activity-alias>: 这是一个用于定义活动别名的元素。活动别名可以让您为已经定义的活动提供一个别名&#xff0c;从而可以通过别名启动原来的活动。 <activityandroid:name".wxapi.WXEntryActiv…

ES6 class 类

普通使用原型添加方法 function Animal(name) {this.name name; }Animal.prototype.speak function() {console.log(this.name makes a noise.); };function Dog(name) {Animal.call(this, name); }Dog.prototype Object.create(Animal.prototype); Dog.prototype.constr…

MQTTX连接华为云IoTDA

目录 华为IoTDA平台 MQTTX连接参数的设置 物模型的构建 属性上报 基本数据格式 时戳 我以前上课都是用巴法云服务器来演示MQTT的&#xff0c;前几天因为测试工业互联网关使用了华为的IoTDA&#xff0c;觉得也不算太复杂&#xff0c;今天尝试用MQTTX连接华为云&#xff0c…

【ARM】MDK-STM32g0xx.h文件与Define规则记录

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 记录问题STM32g0xx.h等有关ST的可读文件&#xff0c;尽量勿修改文件格式及对其代码进行添加和删减&#xff0c;记录查找问题的过程中的疑惑&#xff0c;并如何给予客户正确的回复&#xff0c;帮助销售完成验收&…

CefSharp音视频编译与免费下载

注&#xff1a;Cefharp 音频和视频播放编译&#xff0c;生成相应的dll文件&#xff0c;从而支持项目开发。 建议编译至少 16G 的 RAM和至少 250G 的 SSD。该脚本以 E 盘为例&#xff0c;您需要在 E 盘上手动创建 cef 文件夹。禁止在转载后通过发布其他平台向用户收取下载费用。…

C++笔记5

目录 图的基础问题 图上的环 无向图的环 DAG图与拓扑排序 拓扑排序 卡恩算法&#xff08;BFS&#xff09; 算法描述 统计图中每个点的入度&#xff08;即连向该点的边数&#xff09; 拓扑排序的DFS算法 算法描述 拓扑排序的DFS的实现简单&#xff0c;从一个入度为0的…

新形势下职业教育大数据人才培养策略

一、引言 随着信息技术的飞速发展&#xff0c;大数据已成为驱动经济社会变革的关键力量。在新形势下&#xff0c;职业教育作为技术技能人才培养的重要阵地&#xff0c;面临着如何适应大数据时代要求、提升人才培养质量的紧迫任务。当前&#xff0c;职业教育在大数据人才培养方…

云HIS系统源码,业务云协同和数据云协同的数字化医院信息系统

云HIS是利用云计算、大数据、物联网、移动互联网等技术&#xff0c;打造的一个安全、便捷、共享、协同的医疗互联网云生态平台。核心功能是业务云协同和数据云协同。云HIS具有可扩展、易共享、易协同、低成本、体验号、更便捷、易维护的优势&#xff0c;重新定义了数字化医院信…

leetcode日记(49)旋转链表

其实不难&#xff0c;就是根据kk%len判断需要旋转的位置&#xff0c;再将后半段接在前半段前面就行。 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : …

uniapp的h5,读取本地txt带标签的文件

效果图 使用的回显的标签是u-parse&#xff0c;下面的网址讲了这个标签的相关 https://www.cnblogs.com/huihuihero/p/12978903.html 导入此插件 https://ext.dcloud.net.cn/plugin?id364 使用 uni.request({// 本地文件url: "/static/互联网医院医师端用户协议.txt…

C# datetimePicker

1. 直接把控件拉到设计器中&#xff0c;此时不要调整控件的values属性&#xff0c;这样就可以 打开后每次默认显示当天日期。 2. 属性Format long长日期格式默认值short短日期格式Time时间格式custom自定义时间格式在customFormat这个属性设置&#xff0c;比如yyyy-MM-dd HH…

Stage模型应用程序包结构

目录 官网地址 官网结构图 开发态包结构 工程目录结构 配置文件 module.json5配置文件 app.json5配置文件 官网地址 官网地址 包结构 官网结构图 开发态包结构 在DevEco Studio上创建一个项目工程&#xff0c;并尝试创建多个不同类型的Module&#xff08;类似一个一个的页…

C 语言基础概念总结

C 语言基础概念总结 一、数据类型 目录 C 语言基础概念总结 一、数据类型 基本数据类型 构造数据类型 二、变量与常量 三、运算符与表达式 算术运算符 关系运算符 逻辑运算符 赋值运算符 自增自减运算符 四、控制流语句 顺序结构 选择结构 循环结构 五、函数 …

c++笔记1

目录 结构体 关于结构体 结构体变量 成员的获取和赋值 结构体排序 结构体与模板 结构体嵌套 结构体与函数 模板与pair 模板 pair 多重循环 多重循环结构 嵌套注意事项 多重循环实例 再谈变量的作用域 多重循环的控制 嵌套中的break和continue 多重循环中的控…

PCDN技术如何降低运营成本?

PCDN技术通过以下几种方式降低运营商的运营成本: 1.利用用户设备作为缓存节点: PCDN技术将用户设备纳入内容分发网络&#xff0c;利用这些设备的闲置带宽和存储资源来缓存和分发内容。这种方式不需要运营商投入大量的高成本服务器和带宽资源&#xff0c;从而降低了硬件和带宽…

jetbrains 、IntelliJ IDEA、PyCharm 等工具英语音译读音

本心、输入输出、结果 文章目录 jetbrains 、IntelliJ IDEA、PyCharm 等工具英语音译读音前言jetbrains 、IntelliJ IDEA、PyCharm 等工具英语音译读音jetbrains 、IntelliJ IDEA、PyCharm 等工具英语音译读音 编辑 | 简简单单 Online zuozuo 地址 | https://blog.csdn.net/qq_…

go-kratos 学习笔记(6) 数据库gorm使用

数据库是项目的核心&#xff0c;数据库的链接数据是data层的操作&#xff0c;选择了比较简单好用的gorm作为数据库的工具&#xff1b;之前是PHP开发&#xff0c;各种框架都是orm的操作&#xff1b;gorm还是很相似的&#xff0c;使用起来比较顺手 go-kratos官网的实例是ent&…