npm、cnpm、pnpm使用详细

简介:

npm:npm(Node Package Manager)是Node.js的包管理工具,用于安装、更新、卸载Node.js的模块和包。它提供了一个命令行界面,使得开发者可以轻松地管理项目依赖。npm 是 nodejs 中的一部分,通常与 nodejs 一起安装和更新。当你安装了 nodejs,npm 也随之安装。

cnpm:cnpm(China Node Package Manager)是一个为中国大陆用户定制的 npm(Node Package Manager)镜像,由阿里巴巴的淘宝团队开发和维护。由于 npm 的原始服务器位于国外,对于中国大陆的用户来说,下载和安装 Node.js 包时可能会遇到速度较慢或连接不稳定的问题。为了解决这个问题,cnpm 镜像被创建出来,以提高下载速度和稳定性。

pnpm:pnpm是一个高效的 npm 包管理工具,它旨在解决包依赖管理时的一些常见问题。与npm和yarn不同,pnpm使用一种称为"符号链接"的方法来管理包依赖,称为硬链接(hard links),这可以节省磁盘空间并提高安装速度,并确保同一个包的不同版本之间共享尽可能多的代码。

一、npm常用命令:

1、 初始化一个新的Node.js项目

javascript 复制代码
npm init
//初始化生成package.json文件

npm init -y
//初始化,默认确定,省去敲回车的步骤

npm init:初始化一个新的Node.js项目,并创建一个package.json文件,该文件包含了项目的元数据和依赖信息。

2、安装依赖包

javascript 复制代码
npm install
//安装所有node_moudles依赖包

npm install axios
//安装axios依赖包
//这会将axios包安装到你的项目中,并在package.json文件的dependencies部分添加一个条目。

npm install <package-name>:安装指定的包到当前项目中。

如果该包在package.json文件中被声明为依赖,则它将被添加到项目的node_modules文件夹中。

3、卸载依赖包

javascript 复制代码
npm uninstall axios
//移除、卸载axios包

npm uninstall <package-name>:从当前项目中卸载指定的包。

4、更新依赖包

javascript 复制代码
npm update
//更新所有依赖包到它们的最新版本

npm update express
//只想更新axios到最新版本

npm update <package-name>:更新指定的包到最新版本。你也可以使用npm update命令来更新所有依赖包到它们的最新版本。

5、列出已安装的包

javascript 复制代码
npm list
//查看你的项目中安装的所有包

npm list --depth=0
//查看顶级依赖

npm list:列出当前 项目中安装的所有包及其依赖关系。你可以使用npm list --depth=0来仅显示顶级包,其中的 --depth=0 参数是用来指定展示依赖关系的深度的。

解析:

npm list:表示列出模块及其依赖关系的命令。

-g:表示在全局范围内查询模块。

--depth=0:是一个参数,用于指定展示依赖关系的深度。在这里,0 表示只显示直接安装的模块,而不显示其依赖的模块。

6、搜索包

javascript 复制代码
1、//找一个用于日期处理的包,你可以使用npm search来搜索
npm search date-handling

2、//搜索结果
NAME                      | DESCRIPTION          | AUTHOR          | DATE       | VERSION  | KEYWORDS  
date-fns                  | Modern JavaScript... | date-fns-org    | 2023-04-01 | 2.29.3   | date, date-fns, date-handling, ...  
moment-business-days      | A moment.js plugin...| mbadolato       | 2023-03-15 | 1.0.0    | moment, moment.js, date, date-handling, ...  
date-handling-utilities   | A set of utilities...| some-author     | 2023-02-01 | 1.0.1    | date, date-handling, utilities, ...  
...

3、//安装和使用,找到满足你需求的包,你可以使用 npm install 命令来安装它,然后按照包的文档来使用
npm install date-fns

7、运行脚本

javascript 复制代码
1、//package.json文件中的脚本定义
"scripts": {  
  "start": "node app.js",  
  "test": "mocha tests/*"  
}


2、//运行start脚本(即启动你的应用),你可以使用
npm run start


3、//测试脚本
npm test  
//或者
npm run test

npm run <script-name>:运行package.json文件中定义的脚本。例如,npm run start将运行名为"start"的脚本。

8、npm是一个流行的包管理工具,它的社区非常活跃,每天都有大量的包被发布和更新。因此,在使用npm时,建议经常查看官方文档和社区资源,以获取最新的信息和最佳实践。

二、cnpm 的用法与原始的 npm 几乎完全相同,大多数 npm 命令都可以在 cnpm 中直接使用。cnpm的安装和使用,地址如下:

cnpm的安装和使用https://blog.csdn.net/weixin_65793170/article/details/136441677?spm=1001.2014.3001.5501

Tips:如果你之前的npm/cnpm使用的是旧域名, https://npm.taobao.org 或 https://registry.npm.taobao.org

建议尽快更新你的 npm 配置,将镜像源切换到新域名。你可以使用以下命令来设置新的淘宝 NPM 镜像源:

|---|--------------------------------------------------------------------|
| | #### npm config set registry https://registry.npmmirror.com/ |

或者,如果你使用的是 cnpm,可以这样设置:

|---|---------------------------------------------------------------------|
| | #### cnpm config set registry https://registry.npmmirror.com/ |

完成设置后,你可以通过运行 npm get registry 或 cnpm get registry 来验证新的镜像源是否已正确设置。确保你的项目和企业环境中的相关配置也都更新为新的镜像源地址。

三、pnpm 虽然是 npm 的替代品,但它们的功能和用途有所不同。pnpm 则更侧重于提高存储效率和性能,可以根据自己的需求选择使用哪个工具。

1、主要特性:

  • 速度快:pnpm 通过使用硬链接和高效的存储策略来加快安装速度。
  • 高效利用磁盘空间:由于使用了硬链接,pnpm 可以确保同一个包的不同版本之间共享代码,从而极大地节省了磁盘空间。
  • 支持 monorepo:随着前端工程的日益复杂,越来越多的项目开始使用 monorepo。pnpm 提供了对 monorepo 的原生支持。

2、常用命令:

  • 安装:
  • pnpm install:安装项目的所有依赖项。
  • pnpm add <pkg>:安装指定的软件包及其依赖项。
  • 更新:
  • pnpm update:根据指定的范围更新软件包的最新版本。如果不带参数,将更新所有依赖项。
  • pnpm update <pkg>:更新指定的软件包。
  • 删除:
  • pnpm remove <pkg>:删除指定的软件包及其依赖项。
  • 查看版本信息:
  • pnpm -v:
  • 设置源:
  • pnpm config set registry <registry-url>:设置 pnpm 的源为指定的注册表地址。
  • 运行项目:
  • pnpm run <script-name>:运行 package.json 中定义的脚本。

可以看到,其实pnpm命令和npm的命令基本上都是一样的,不过是把npm换成了pnpm。

相关推荐
福兮说8 小时前
设计稿是 #4A7C6F,页面量出来是 #4B7C6F:HEX、HSL、透明度、canvas 来回转的七个坑
前端·javascript·css·canvas
郑州光合科技余经理8 小时前
海外版外卖加盟:总站与分站配送规则怎么分开管
java·开发语言·前端·后端·uni-app·php·ai编程
小呆呆6669 小时前
副业搞起来,小说,漫画,漫剧的成本优化思路
前端·后端·面试
Dovis(誓平步青云)9 小时前
浇水提醒刚弹出又消失,植物状态别只存一个百分比
开发语言·前端·javascript·pdf·ecmascript·电脑
码艺-Alimjan10 小时前
Vben Admin 新增维吾尔语 Vben-Modal的关键坑之一
前端·javascript·vue.js
可乐鸡翅yeah_10 小时前
hls.js 手动自定义 http 请求 loader,修改请求头实战
开发语言·前端·javascript·网络协议·http·ecmascript·m3u8在线
IT_陈寒11 小时前
Vite静态资源导入这个坑我帮你们踩过了
前端·人工智能·后端
广州华水科技11 小时前
大坝安全监测解决方案:单北斗GNSS形变监测系统应用与维护
前端
yivifu11 小时前
中文古籍电子书注释集成
前端·javascript·python·beautifulsoup·epub
niyongsheng12 小时前
后端零改动,给若依换一套现代化前端
vue.js·开源·node.js