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.rhkb.cn/news/269041.html

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

相关文章

vue3+uniapp在微信小程序实现一个2048小游戏

一、效果展示 二、代码 <template><view class"page"><view class"top"><view class"score">得分:{{total}}</view><view class"time">用时:{{allTime}}s</view></view><view cl…

网络工程师笔记8

华为VRP系统 设备管理方式 web管理方式 命令行管理方式 修改命令&#xff1a;undo 基础配置命令

期货开户保证金保障市场正常运转

期货保证金是什么&#xff1f;在期货市场上&#xff0c;采取保证金交易制度&#xff0c;投资者只需按期货合约的价值&#xff0c;交一定比率少量资金即可参与期货合约买卖交易&#xff0c;这种资金就是期货保证金。期货保证金&#xff08;以下简称保证金〕按性质与作用的不同。…

记录SSM项目集成Spring Security 4.X版本 之 加密验证和记住我功能

目录 前言 一、用户登录密码加密认证 二、记住我功能 前言 本次笔记的记录是接SSM项目集成Spring Security 4.X版本 之 加入DWZ,J-UI框架实现登录和主页菜单显示-CSDN博客https://blog.csdn.net/u011529483/article/details/136255768?spm1001.2014.3001.5502 文章之后补…

神经网络结构——CNN、RNN、LSTM、Transformer !!

文章目录 前言 一、什么是CNN 网络结构 解决问题 工作原理 实际应用 二、什么是RNN 网络结构 解决问题 工作原理 应用场景 三、什么是LSTM 网络结构 解决问题 工作原理 应用场景 四、什么是Transformer 网络结构 解决问题 工作原理 BERT GPT 前言 本文将从什么是CNN&#xff1…

Redis的介绍与使用

文章目录 Redis简介安装RedisRedis常用命令全局命令String类型数据Hash哈希类型数据List列表类型数据Set集合类型数据SortedSet有序集合类型数据 一些选择题一些选择题 Redis简介 Redis是一款基于键值对的NoSQL数据库&#xff0c;它的值支持多种数据结构&#xff1a; 字符串(s…

代码随想录算法训练营第26天—回溯算法06 | ● *332.重新安排行程 ● *51. N皇后 ● *37. 解数独 ● 总结

*332.重新安排行程 https://programmercarl.com/0332.%E9%87%8D%E6%96%B0%E5%AE%89%E6%8E%92%E8%A1%8C%E7%A8%8B.html 考点 图论里的深度优先搜索&#xff08;本题使用回溯来解决&#xff09;这是一道hard题&#xff0c;一刷先放过去&#xff0c;二刷有精力再做 我的思路 无思…

【AI Agent系列】【MetaGPT多智能体学习】4. 基于MetaGPT的Team组件开发你的第一个智能体团队

本系列文章跟随《MetaGPT多智能体课程》&#xff08;https://github.com/datawhalechina/hugging-multi-agent&#xff09;&#xff0c;深入理解并实践多智能体系统的开发。 本文为该课程的第四章&#xff08;多智能体开发&#xff09;的第二篇笔记。主要是对MetaGPT中Team组件…

二叉搜索树题目:将有序数组转换为二叉搜索树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法思路和算法证明代码复杂度分析 题目 标题和出处 标题&#xff1a;将有序数组转换为二叉搜索树 出处&#xff1a;108. 将有序数组转换为二叉搜索树 难度 4 级 题目描述 要求 给定整数数组 nums \texttt{nums}…

力扣 第 125 场双周赛 解题报告 | 珂学家 | 树形DP + 组合数学

前言 整体评价 T4感觉有简单的方法&#xff0c;无奈树形DP一条路上走到黑了&#xff0c;这场还是有难度的。 T1. 超过阈值的最少操作数 I 思路: 模拟 class Solution {public int minOperations(int[] nums, int k) {return (int)Arrays.stream(nums).filter(x -> x <…

springboot230基于Spring Boot在线远程考试系统的设计与实现

在线远程考试系统设计与实现 摘 要 信息数据从传统到当代&#xff0c;是一直在变革当中&#xff0c;突如其来的互联网让传统的信息管理看到了革命性的曙光&#xff0c;因为传统信息管理从时效性&#xff0c;还是安全性&#xff0c;还是可操作性等各个方面来讲&#xff0c;遇到…

协议和序列化反序列化

“协议”和序列化反序列化 “协议”的概念&#xff1a; “协议”本身是一种约定俗成的东西&#xff0c;由通讯双方必须共同遵从的一组约定&#xff0c;因此我们一定要将这种约定用计算机语言表达出来&#xff0c;此时双方计算机才能识别约定的相关内容 我们把这个规矩叫做“…

今晚打老虎:用katalon解决接口/自动化测试拦路虎--参数化

不管是做接口测试还是做自动化测试&#xff0c;参数化肯定是一个绕不过去的坎。 因为我们要考虑到多个接口都使用相同参数的问题。所以&#xff0c;本文将讲述一下katalon是如何进行参数化的。 全局变量 右侧菜单栏中打开profile&#xff0c;点击default&#xff0c;打开之后…

【LeetCode】升级打怪之路 Day 11:栈的应用、单调栈

今日题目&#xff1a; Problem 1: 栈的应用 155. 最小栈 | LeetCode20. 有效的括号 | LeetCode150. 逆波兰表达式求值 | LeetCode Problem 2: 单调栈 496. 下一个更大元素 I739. 每日温度503. 下一个更大元素 II 目录 Problem 1&#xff1a;栈 - “先进后出”的应用LC 155. 最…

IO(Linux)

文件系统 前言1. 回顾关于C文件部分函数2. 一些文件知识的共识3. 相对路径4. fwrite中的\0 一、文件描述符fd1. 概念2. 系统调用① open 和 close② write③ read 和 lseek 3. 缺省打开的fd 二、重定向1. 原理2. 系统调用dup23. stdout和stderr的区别4. 进程替换和原来进程文件…

Linux笔记-3

软件安装 概述 在Linux中&#xff0c;软件安装分为3种方式&#xff1a;绿色安装(压缩包解压之后就能直接使用)&#xff0c;rpm安装(类似于Windows中的exe或者msi文件)&#xff0c;yum安装 RPM(Red Hat Package Manager)&#xff1a;红帽提供的软件包的管理工具。可以通过rpm命…

Github项目推荐-LightMirrors

项目地址 https://github.com/NoCLin/LightMirrors 项目简述 “LightMirrors是一个开源的缓存镜像站服务&#xff0c;用于加速软件包下载和镜像拉取。目前支持DockerHub、PyPI、PyTorch、NPM等镜像缓存服务。 当前项目仍处于早期阶段。”–来自项目说明。 也就是说&#xff…

vue中使用prettier

前言&#xff1a;prettier是一款有态度的代码格式化工具&#xff0c;它可以集成在IDE中&#xff0c;如VS Code、Web Storm等&#xff0c;也可以安装到我们开发的项目里面。本文主要讲解在Vue中集成prettier的过程&#xff0c;可以便于代码检测和格式化。 prettier官网 从官网的…

ardupilot 及PX4姿态误差计算算法对比分析

目录 文章目录 目录摘要1.APM姿态误差计算算法2.PX4姿态误差计算算法3.结论摘要 本节主要记录ardupilot 及PX4姿态误差计算算法差异对比过程,欢迎批评指正。 备注: 1.创作不易,有问题急时反馈 2.需要理解四元物理含义、叉乘及点乘含义、方向余弦矩阵含义、四元数乘法物理含…

vue+element ui上传图片到七牛云服务器

本来打算做一个全部都是前端完成的资源上传到七牛云的demo&#xff0c;但是需要获取token&#xff0c;经历了九九八十一难&#xff0c;最终还是选择放弃&#xff0c;token从后端获取&#xff08;springboot&#xff09;。如果你们有前端直接能解决的麻烦记得私我哦&#xff01;…