前端包管理工具:npm,yarn、cnpm、npx、pnpm

news2024/11/25 13:15:45

包管理工具npm

Node Package Manager,也就是Node包管理器

但是目前已经不仅仅是Node包管理器了,在前端项目中我们也在使用它来管理依赖的包;

比如vue、vue-router、vuex、express、koa、react、react-dom、axios、babel、webpack等等;

如何下载和安装npm工具呢?

npm属于node的一个管理工具,所以我们需要先安装Node; 

node管理工具: https://nodejs.org/en/ ,安装Node的过程会自动安装npm工具;

npm管理的包可以在哪里查看、搜索呢?

https://www.npmjs.org/

这是我们安装相关的npm包的官网 

npm管理的包存放在哪里呢?

我们发布自己的包其实是发布到registry上面的;

当我们安装一个包时其实是从registry上面下载的包 

npm的配置文件

通过 npm init –y,就可以初始化一个配置文件 

通过脚手架创建项目,脚手架会帮助我们生成package.json,并且里面有相关的配置

 

name是项目的名称;
version是当前项目的版本号;
main设置入口文件;
description是描述信息,很多时候是作为项目的基本描述;
author是作者相关信息(发布时用到);
license是开源协议(发布时用到);

npm install 命令

全局安装(global install): npm install webpack -g;
项目(局部)安装(local install): npm install webpack
只在开发环境使用到的包:npm install XXX -D
默认是-S,就是开发环境和生产环境都需要的包
清除缓存: npm cache clean

 yarn工具

另一个node包管理工具yarn;

yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具;

yarn 是为了弥补 早期npm 的一些缺陷而出现的;

早期的npm存在很多的缺陷,比如安装依赖速度很慢、版本依赖混乱等等一系列的问题;
虽然从npm5版本开始,进行了很多的升级和改进,但是依然很多人喜欢使用yarn;

cnpm工具 

由于一些特殊的原因,某些情况下我们没办法很好的从 https://registry.npmjs.org下载下来一些需要的包。我们可以设置npm的下载源,换成淘宝镜像。如果你并不希望将npm镜像修改,就可以使用cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm config get registry # https://r.npm.taobao.org/

npx工具 

npx是npm5.2之后自带的一个命令。
        npx的作用非常多,但是比较常见的是使用它来调用项目中的某个模块的指令。
        相比 npm,npx 会自动安装依赖包并执行某个命令。

假如我们要用 create-react-app 脚手架创建一个 react 项目 ,常规做法如下:

// 第一步
npm i -g create-react-app

// 第二步
create-react-app my-react-app

有了 npx 后,我们可以省略安装 create-react-app 这一步。

// 使用npx
npx create-react-app my-react-app

什么是pnpm呢?

由npm/yarn衍生而来,解决了npm/yarn内部潜在的bug,极大的优化了性能,扩展了使用场景。被誉为“最先进的包管理工具”

速度快、节约磁盘空间、支持monorepo、安全性高

当使用 npm 或 Yarn 时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么, 你在硬盘上就需要保存 100 份该相同依赖包的副本。

如果是使用 pnpm,依赖包将被 存放在一个统一的位置

        如果你对同一依赖包使用相同的版本,那么磁盘上只有这个依赖包的一份文件;

        如果你对同一依赖包需要使用不同的版本,则仅有 版本之间不同的文件会被存储起来 

        所有文件都保存在硬盘上的统一的位置、

pnpm安装:npm install pnpm -g

获取安装路径:pnpm store path

另外一个非常重要的store命令是prune(修剪):从store中删除当前未被引用的包来释放store的空间

pnpm store prune

 

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

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

相关文章

描述性统计

参考文献 威廉 M 门登霍尔 《统计学》 文章目录定性数据的描述方法条形图饼图帕累托图定量数据点图茎叶图频数分布直方图MINITAB 工具在威廉《统计学》一书将统计学分为描述统计学和推断统计学,他们的定义分别如下:描述统计学:致力于数据集的…

人生又有几个四年

机缘 不知不觉,已经来 csdn 创作四周年啦~ 我是在刚工作不到一年的时候接触 csdn 的,当时在学习 node,对 node 的文件相关的几个 api 总是搞混,本来还想着在传统的纸质笔记本上记一下,但是想想我大学记了好久的笔记本…

1.Spring Cloud (Hoxton.SR8) 学习笔记—IDEA 创建 Spring Cloud、配置文件样例

本文目录如下:一、IDEA 创建 Spring Cloud 基本步骤创建父项目 (Project)创建子模块 (Module)Spring Cloud 中的依赖版本对应关系?Spring Cloud实现模块间相互调用(引入模块)?Maven项目命名规范(groupID、artifactid)Spring Clou…

如何使用码匠连接 MariaDB

MariaDB 是一个免费的、开源的关系型数据库管理系统,由 MariaDB 的创始人 Michael Widenius 于 2010 年创建。它基于 MariaDB,但在对数据存储的处理中加入了一些自己的特性。MariaDB 相对于 MariaDB 而言,具有更好的性能和更好的兼容性&#…

JavaWeb--案例(Axios+JSON)

JavaWeb--案例(AxiosJSON)1 需求2 查询所有功能2.1 环境准备2.2 后端实现2.3 前端实现2.4 测试3 添加品牌功能3.1 后端实现3.2 前端实现3.3 测试1 需求 使用Axios JSON 完成品牌列表数据查询和添加。页面效果还是下图所示: 2 查询所有功能 …

3年测试经验,10家企业面试,爆-肝整理软件测试面试题与市场需求......

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 现在网上的软件测试…

系统调用——文件操作相关函数

1.open open, creat - open and possibly create a file or device 打开一个文件&#xff0c;也可能创建一个文件&#xff0c;返回文件描述符 //头文件 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> //接口 int open(const char *pa…

python建立图片索引数据库,根据一段文字,找到存放在电脑上最匹配的图片

python建立图片索引数据库&#xff0c;根据一段文字&#xff0c;找到存放在电脑上最匹配的图片 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 一、程序的用处 一键视频 可以根据一…

Vue对Axios网络请求进行封装

一、为什么要对网络请求进行封装&#xff1f; 因为网络请求的使用率实在是太高了&#xff0c;我们有的时候为了程序的一个可维护性&#xff0c;会把同样的东西放在一起&#xff0c;后期找起来会很方便&#xff0c;这就是封装的主要意义。 二、如何进行封装&#xff1f; 1、将…

Promise的理解和使用

Promise是什么 抽象表达 promise 是一门新的技术(ES6规范&#xff09;Promise 是JS中进行异步编程的新解决方案 具体表达 从语法上来说&#xff1a;Promise是一个构造函数从功能上来说&#xff1a;promise对象用来封装一个异步操作并可以获取其成功/失败的结果 回调函数就…

OLE对象是什么?为什么要在CAD图形中插入OLE对象?

OLE对象是什么&#xff1f;OLE对象的意思是指对象连接与嵌入。那为什么要在CAD图形中插入OLE对象&#xff1f;一般情况下&#xff0c;在CAD图形中插入OLE对象&#xff0c;是为了将不同应用程序的数据合并到一个文档中。本节内容小编就来给大家分享一下在CAD图形中插入OLE对象的…

Golang 内存分配原理

引言 golang是谷歌2009年发布的开源编程语言&#xff0c;截止目前go的release版本已经到了1.12&#xff0c;Golang 语言专门针对多处理器系统应用程序的编程进行了优化&#xff0c;使用 Golang 编译的程序可以媲美 C /C代码的速度&#xff0c;而且更加安全、支持并行进程。和其…

机器学习学习记录2:归纳偏好(奥卡姆剃刀原则和NFL定理)

定义对于相同的训练样本&#xff0c;不同学习算法会产生不同的模型&#xff0c;决定其产生模型的&#xff0c;是学习算法本身的“偏好”。此处&#xff0c;书中引入“归纳偏好”的概念&#xff1a;机器学习算法在学习过程中对某种类型假设的偏好&#xff0c;称为"归纳偏好…

CMake编译学习笔记

CMake学习笔记CMake编译概述CMake学习资源CMake编译项目架构cmake指令CMakeList基础准则CMakeList编写项目构建cmake_minimum_required() 和 project()set()find_package()add_executable()aux_source_directory()连接库文件include_directories()和target_include_directories…

1.4 数值运输商中应注意的几个原则

在数值运算中&#xff0c;每步都可能产生误差&#xff0c;我们不可能(也不必要)步步进行分析&#xff0e;下面仅从误差的某些传播规律和计算机字长有限的特点出发,指出在数值运算中必须注意的几个原则&#xff0c;以提高计算结果的可靠性1. 选用数值稳定性好的算法计算机虽然具…

MySQL Show Profile分析

6 Show Profile分析&#xff08;重点&#xff09; Show Profile是mysql提供可以用来分析当前会话中语句执行的资源消耗情况。可以用于SQL的调优的测量 官网文档 默认情况下&#xff0c;参数处于关闭状态&#xff0c;并保存最近15次的运行结果 分析步骤&#xff1a; 1、是否…

Flask+VUE前后端分离的登入注册系统实现

首先Pycharm创建一个Flask项目&#xff1a; Flask连接数据库需要下载的包&#xff1a; pip install -U flask-cors pip install flask-sqlalchemy Flask 连接和操作Mysql数据库 - 王滚滚啊 - 博客园 (cnblogs.com) sqlAlchemy基本使用 - 简书 (jianshu.com) FlaskVue前后端分…

最新研究!美国爱荷华州立大学利用量子计算模拟原子核

爱荷华州立大学物理学和天文学教授James Vary&#xff08;图片来源&#xff1a;网络&#xff09;美国爱荷华州立大学物理学和天文学教授James Vary和来自爱荷华州立大学、马萨诸塞州塔夫茨大学&#xff0c;以及美国能源部加利福尼亚州劳伦斯伯克利国家实验室的研究人员&#xf…

basic1.0链码部署(基于test-network 环境ubuntu20.04腾讯云)

解决了官方示例指令需要科学上网才能运行的问题&#xff08;通过手动下载二进制文件和拉取官方fabric-samples&#xff09;。具体的将bootstrap.sh脚本解读了一遍 具体可以参照我的博客 fabric中bootstrap.sh到底帮助我们干了什么&#xff1f;&#xff08;curl -sSL https://bi…

PACS(CT、CR、DR、MR、DSA、RF医院影像管理系统源码)

PACS具体功能介绍&#xff1a; 病人、采集、观片、三维、报告、照相、退出、文件、图像采集、观片操作、三维、测量标注、诊断报告、照相打印、统计报表、系统管理、帮助、病人浏览器、选择数据源、打开图像、病人登记、工作列表、采集、打开画廊。 DICOM查询/获取&#xff1a…