浅谈Node.js中的npm和yarn

news2024/9/21 12:32:35

官方文档:

npmicon-default.png?t=N658https://www.npmjs.cn/

yarnicon-default.png?t=N658https://yarn.bootcss.com/

npm和yarn的作用

yarn和npm都是构建和打包javascript代码的工具

区别

npm:

1npm使得js开发者易于分享其为解决特定问题而编写的代码,且可供其他开发者在他们自己的应用中复用这些代码。这些可复用代码被称作“包”,有时也叫做“模块”。

2npm最开始是作为node的包管理器开始的,所以npm中存在许多可用于服务器端的包。

3npm的组成部分:网站,注册表(rehistry),命令行工具(CLI)。网站是开发者查找包,设置参数以及管理npm使用体验的主要途径。注册表是一个巨大的数据库,保存了每个包的信息。CLI通过命令行或终端运行。开发者通过CLI与npm打交道。

4注意:npm自定义修改了全局包存放路径,还需要去设置环境变量,将自定义全局包路径加到环境变量中,否则全局装的包没法在命令行窗口中正常使用。

yarn:

1.Yarn是由Facebook、Google、Exponent 和 Tilde 联合推出了一个新的 JS 包管理工具(取代npm) ,是为了弥补 npm 的一些缺陷而出现。

2.yarn需要借助npm进行安装:执行的命令行。

3.注意:yarn自定义修改了全局包存放路径,还需要去设置环境变量,将自定义全局包路径加到环境变量中,否则全局装的包没法在命令行窗口中正常使用

npm的缺点:

当新建一个项目需要执行npm install 的时候速度太慢,有时候下载版本错误或者不完整。

对于同一个项目,不同的人在安装的时候无法保证模块版本的一致性。

yarn的优点

安装速度快:因为yarn缓存每一个下载过的包,所以再次使用时无需重复下载。同时利用并行下载以最大化资源利用率,因此安装速度更快。

安全性较高:在执行代码之前,yarn会通过算法校验每个安装包的完整性。这个是npm所没有的。

可靠性强:使用详细,间接的锁文件格式和明确的安装算法,yarn能够保证在不同系统上无差异的工作。

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

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

相关文章

【阶段学习小总结】

串口通信和CAN总线通信的区别 can总线和串口是两种不同的通信模式,注意CAN总线数据传输所用的虽然是DB9串口线,但它完全不是串口,这一点容易出错。 CAN总线通信是高速,可靠,灵活的一种通信协议。作为一种分布式通信方…

天梯赛注意事项

格式错误 有的时候题目隐含的条件是要你输出两行的,即使第二行什么也没有,也得输出。 答案错误可能涉及特殊值的处理 或者 题意与你本身的思维不一致 map定义在main外面 键自动赋值 it->first it->second mp自动按照下标排序 . 模拟出栈入栈操…

使用GTK创建简易计算器

使用GTK创建简易计算器 本文将介绍如何使用GTK(GIMP Toolkit)创建一个简单的计算器应用程序。通过这个例子,你将学习如何构建基本的图形用户界面,并了解GTK的一些常用组件和回调函数的使用。 准备工作 首先,确保你已…

Django之中间件

一、中间件介绍 官方的说法:中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用于在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。 但是由于其影响的是全局,所以需要…

Vivado2020.1 vitis使用:创建hello world项目

前言 之前网上的教程都是基于Vivado2018的,后来接手一个未完工的项目,是使用Vivado2020.1创建的,非常尴尬,只能打开,不能编辑。千辛万苦把2020.1安装好,当然此时不仅仅是Vivado2020.1了,而是vi…

gitee注册以及使用的简单教程

目录 1.gitee是什么? 2. gitee怎么注册? 3.gitee创建仓库 4.gitee怎么提交代码? 5. git的三板斧 1.gitee是什么? 基于Git的代码托管和研发协作平台上面可以托管个人或者公司的代码和开源项目。国外有github,国内有giteegithub经常出现…

(vue)el-table表头、内容居中

(vue)el-table表头、内容居中 效果&#xff1a; 表头、内容都居中 <el-table:data"gridData":header-cell-style"{text-align:center}":cell-style"{text-align:center}" >单个表格的内容居中&#xff1a; el-table-column上加上align‘c…

【C++】-string类的模拟实现

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法\&#x1f384; 如 果 你…

抖音seo源码开发部署技术分享(一)

目录 开发概述 自研开发者介绍 开发要求&#xff1a; 技术开发布局 源码部署及搭建分享 部署环境搭建 代码开发示例 请求样例 响应样例&#xff1a; 代码展示样例 开发概述 开放平台基于开发者诉求和相关平台规则&#xff0c;提供了两种开放模式&#xff1a;能力开放…

前端Vue自定义顶部导航栏navBar 导航栏搜索框searchBar 导航栏右侧菜单按钮button

前端Vue自定义顶部导航栏navBar 导航栏搜索框searchBar 导航栏右侧菜单按钮button&#xff0c;下载完整代码请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13342 效果图如下: # cc-headerSearch #### 使用方法 使用方法 <!-- icon: 右侧菜单…

OpenCV在一个图像上画一个空心绿色的圆和一个实心红色的圆

/*** void cvCircle( CvArr* img, CvPoint center, int radius, CvScalar color, int thickness=1, int line_type=8, int shift=0 );* Opencv画点 其实画的是小圆圈* img:图像。* center:圆心坐标。* radius:圆形的半径。* color:线条的颜色。* thickness:如果是正数,表…

vue筛选框封装

点击对默认查询条件之外的条件进行 增加或删除 在使用的组件或标签加入:filtrateList"filtrateList"传入条件查询数组 当前demo写在xk-page中,就以xk-page组件为例 <xk-upage :filtrateList"filtrateList" :queryArr"queryArr"></xk-…

java项目之母婴用品网站(ssm+mysql+jsp)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的母婴用品网站。 开发环境&#xff1a; 后端&#xff1a; 开发语言&#xff1a;Java 框架&#xff1a;ssm&#xff0c;mybatis JDK版本&am…

EasyCVR非按需定时快照功能的设计与实现方法

EasyCVR基于云边端一体化架构&#xff0c;部署轻快、功能灵活&#xff0c;平台可支持多协议、多类型设备接入&#xff0c;包括&#xff1a;国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等。在视频能力上&#xff0c;可实现视频直播、录像、回放、检索…

Gradio库中的Model3D模块:实时上传和展示3D模型

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

F#奇妙游(9):来一点点画图

F#绘图 如果Python没有Matplotlib&#xff0c;R没有ggplot&#xff0c;Matplab没有plot函数……就像阿珍爱上了阿强&#xff0c;能画图的脚本才是好脚本。当然&#xff0c;F#有画图包&#xff0c;但是F#在数据处理中的地位就像下面&#xff0c;这也是我们没办法的。 ScottPl…

分析openGauss包内集合类型的实现方法

前言 Oracle中集合类型覆盖了Postgresql数组的功能&#xff0c;在Oracle用户中时非常常用的。 尤其是包内定义的集合类型&#xff0c;在SPEC定义后即可直接使用&#xff0c;scope也只在包在生效&#xff0c;使用非常灵活。 开源PG因为有数组没有实现这部分语法&#xff0c;下…

超级广场效果的耳机放大器音响电路设计

用头戴式耳机&#xff0c;尤其是小型耳机听音乐&#xff0c;总感到音乐味不够足&#xff0c;在低频段的效果更差。因此用本机增强耳机的低频特性&#xff0c;并采用立体声反相合成的办法&#xff0c;加上内藏简易矩阵环绕声电路&#xff0c;能获得强劲的低音和在较宽的范围内展…

Windows mingw64 最简易 安装配置

其实挺简单一件事 很多教程都搞复杂了 自己写一个 只需要两步 1. 下载压缩包并解压 2. 配置环境变量 (1). GitHub 下载地址 Releases niXman/mingw-builds-binaries GitHub 如果GitHub下载太慢可以来这里加速 或者用地址2 GitHub Proxy 代理加速 (ghproxy.com) (2). 下…

-Xss1m / -XX:ThreadStackSize=512k

-Xss / -XX:ThreadStackSize指定线程最大栈空间jdk1.4里默认的栈大小是256KBjdk1.5里默认的栈大小为1M配置JVM启动参数&#xff1a;-Xmx20m -Xms20m -Xss1m -XX:PrintCommandLineFlags-XX:ConcGCThreads3 -XX:G1ConcRefinementThreads13 -XX:GCDrainStackTargetSize64 -XX:Init…