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项目

npm init
//初始化生成package.json文件npm init -y
//初始化,默认确定,省去敲回车的步骤

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

2、安装依赖包

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

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

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

3、卸载依赖包

npm uninstall axios
//移除、卸载axios包

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

4、更新依赖包

npm update
//更新所有依赖包到它们的最新版本npm update express
//只想更新axios到最新版本

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

5、列出已安装的包

npm list
//查看你的项目中安装的所有包npm list --depth=0
//查看顶级依赖

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

解析:

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

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

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

6、搜索包

1、//找一个用于日期处理的包,你可以使用npm search来搜索
npm search date-handling2、//搜索结果
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

npm search <keyword>:在npm注册表中搜索包含指定关键字的包,搜索结果可能包含大量与你的查询相关的包,因此你可能需要浏览前几页的结果来找到最适合你需求的包。同时,也要注意检查包的维护状态、文档质量、社区支持和版本更新频率等因素,以确保你选择的包是可靠和稳定的。

7、运行脚本

1、//package.json文件中的脚本定义
"scripts": {  "start": "node app.js",  "test": "mocha tests/*"  
}2、//运行start脚本(即启动你的应用),你可以使用
npm run start3、//测试脚本
npm test  
//或者
npm run test

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

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

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

cnpm的安装和使用icon-default.png?t=N7T8https://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。

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

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

相关文章

Pytorch学习 day01(Jupyter安装、常用函数、三种编辑器的对比)

Jupyter 安装过程中遇到的问题&#xff1a; Anaconda的base环境会自动安装Jupyter&#xff0c;但是如果我们要在其他环境中安装Jupyter&#xff0c;就需要注意&#xff0c;该环境的python版本不能高于3.11&#xff0c;且用以下代码安装&#xff1a; conda install nb_conda_…

什么是跨站脚本攻击(XSS)

厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OCP\CKA\K8S\ CISP\CISSP\PMP\ ​ 跨站脚本攻击&#xff08;Cross-site Scripting&#xff0c;通常称为XSS&#xff09;&#xf…

SpringCloud-RabbitMQ消息模型

本文深入介绍了RabbitMQ消息模型&#xff0c;涵盖了基本消息队列、工作消息队列、广播、路由和主题等五种常见消息模型。每种模型都具有独特的特点和适用场景&#xff0c;为开发者提供了灵活而强大的消息传递工具。通过这些模型&#xff0c;RabbitMQ实现了解耦、异步通信以及高…

深度学习系列61:在CPU上运行大模型

1. 快速版 1.1 llamafile https://github.com/Mozilla-Ocho/llamafile 直接下载就可以用&#xff0c;链接为&#xff1a;https://huggingface.co/jartine/llava-v1.5-7B-GGUF/resolve/main/llava-v1.5-7b-q4.llamafile?downloadtrue 启动&#xff1a;./llava-v1.5-7b-q4.lla…

提升效率的电脑定时工具,AutoOff软件推荐

今天最软库给大家带来一款非常实用的电脑定时关机软件在我们日常办公的时候有的时候需要上传一些资料由于我们下班了&#xff0c;我们想让他上传完成之后我们才离开这时候呢&#xff0c;就可以用到这款定时工具了。 我们可以设置中设置在几小时或者几分钟之后让电脑进行关机我们…

基于springboot+vue的新闻资讯系统

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

【HarmonyOS】DevEco Studio3.1x安装教程

目录 下载安装开发工具配置 下载 开发工具点击跳转→https://hmxt.org/deveco-studio 点击‘立即下载’ 安装 将安装包解压 双击安装&#xff0c;点击“Next” 选择安装目录&#xff0c;点击Next 勾选创建桌面快捷方式和环境的添加&#xff0c;点击Next 点击Instal…

Python实现ROC工具判断信号:股票技术分析的工具系列(7)

Python实现ROC工具判断信号&#xff1a;股票技术分析的工具系列&#xff08;7&#xff09; 介绍算法公式 代码rolling函数介绍完整代码data代码ROC.py 介绍 ROC&#xff08;变动率指标&#xff09;是一种技术分析指标&#xff0c;用于衡量价格变动的速度和幅度&#xff0c;计算…

LCR 127. 跳跃训练

解题思路&#xff1a; 动态规划&#xff0c;类似于斐波那契数列&#xff0c;但需要根据题意调整初始值dp[0]和dp[1]&#xff0c;递推公式由最后一跳跳一次或两次得到。 class Solution {public int trainWays(int num) {if(num<1) return 1;int[] dpnew int[num1];//当平台…

抖音视频评论批量采集软件|视频下载工具

《轻松搞定&#xff01;视频评论批量采集软件&#xff0c;助您高效工作》 在短视频这个充满活力和创意的平台上&#xff0c;了解用户评论是了解市场和观众心声的重要途径之一。为了帮助您快速获取大量视频评论数据&#xff0c;我们推出了一款操作便捷、功能强大的软件&#xff…

JVM运行时数据区——堆

文章目录 1、堆的核心概述1.1、JVM实例与堆内存的对应关系1.2、堆与栈的关系1.3、JVM堆空间划分 2、设置堆内存大小与内存溢出2.1、设置堆内存大小2.2、内存溢出案例 3、新生代与老年代4、图解对象分配过程5、Minor GC、Major GC、Full GC5.1、GC的分类5.2、分代式GC策略的触发…

Linux 之一:Linux 简介、客户端、安装

Linux简介 Linux 内核最初只是由芬兰人林纳斯托瓦兹&#xff08;Linus Torvalds&#xff09;在赫尔辛基大学上学时出于个人爱好而编写的。 Linux&#xff0c;全称GNU/Linux&#xff0c;是一种免费使用和自由传播的类UNIX操作系统&#xff0c;其内核由林纳斯本纳第克特托瓦兹于…

Springboot实现缓存预热

很多时候我们代码中使用缓存时都是先判断缓存中没有数据我们再读取数据库而有则直接使用缓存数据&#xff0c;而在系统冷启动(当系统重启或新启动时&#xff0c;缓存是空的&#xff0c;这被称为冷启动)时&#xff0c;我们毫无意外都是直接获取数据库的内容&#xff0c;这时候缓…

计算机网络-网络安全(二)

1.应用层安全协议&#xff1a; S-HTTP或SHTTP&#xff08;Sec HTTP&#xff09;&#xff0c;安全超文本传输协议&#xff0c;是HTTP扩展&#xff0c;使用TCP的80端口。HTTPS&#xff1a;HTTPSSL&#xff0c;使用TCP的443端口。和TLS&#xff08;传输层安全标准&#xff09;是双…

[Redis]——Spring整合Redis(SpringDataRedis)

⭐准备工作&#xff1a; 确保Redis服务已启动idea开发环境 ⭐Redis整合步骤&#xff1a; 1.pom文件引入依赖 2.yml文件配置连接信息 3.修改Redis序列化方式 4.注入RedisTemplate 使用 小知识&#xff1a; Spring整合的Redis可以将Object对象自动序列化成字符串&#xff0…

RabbitMQ分享

RabbitMQ遵循AMQP协议&#xff0c;自身采用Erlang RabbitMQ工作模式 生产者发消息&#xff0c;启动多个消费者实例来消费消息&#xff0c;每个消费者仅消费部分信息&#xff0c;可达到负载均衡的效果。 RabbitMQ三种常用交换机类型&#xff1a; 交换机主要起调度分发作用。 …

【Oracle Database】如何远程连接服务器、创建用户、从本地dmp导入表

C:\Users\test>imp test/123456ip/orcl:1521 fileE:\db.dmp tablestable1,table2Import: Release 11.2.0.3.0 - Production on 星期一 3月 4 12:59:09 2024Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.IMP-00058: 遇到 ORACLE 错误 1263…

电机应用-正点原子直流有刷电机例程笔记

目录 基础驱动实验&#xff1a;调速和换向 初始化工作 电机基础驱动API 电压、电流、温度检测实验 初始化工作 采集工作 编码器测速实验 编码器接口计数原理 初始化工作 编码器测速工作 速度环控制实现 PID相关函数 PID运算 电流环控制实现 PID相关函数 PID运算…

Shell管道和过滤器

一、Shell管道 Shell 还有一种功能&#xff0c;就是可以将两个或者多个命令&#xff08;程序或者进程&#xff09;连接到一起&#xff0c;把一个命令的输出作为下一个命令的输入&#xff0c;以这种方式连接的两个或者多个命令就形成了管道&#xff08;pipe&#xff09;。 重定…

数仓实战——京东数据指标体系的构建与实践

目录 一、如何理解指标体系 1.1 指标和指标体系的基本含义 1.2 指标和和标签的区别 1.3 指标体系在数据链路中的位置和作用 1.4 流量指标体系 1.5 指标体系如何向上支撑业务应用 1.6 指标体系背后的数据加工逻辑 二、如何搭建和应用指标体系 2.1 指标体系建设方法—OS…