yarn和npm的对比,以及项目中使用方式
相比npm 的优点
1.npm安装是串行,而yarn是并行,速度大大提升
2.已经下载过的包会被缓存,无需重复下载,更关键的是,支持离线安装
3.精准的版本控制,加上验证每个包的完整性,保证每次安装的npm包完全一致
npm版本控制缺陷带来的严重问题(https://blog.csdn.net/qiansg123/article/details/80129453)
4.优化的输出信息
npm5改进:
1.引入了package-lock.json,默认会被添加到项目,增强了版本控制
2.提升了安装速度,还是稍慢于yarn,引入了离线缓存
3.优化输出信息
Yarn工作流、对应命令上npm的差别:
1.创建一个新项目
初始化
npm init yarn init
2.添加/更新/删除依赖项
添加(使用package@version指定版本号 global指定全局安装)
加入生产依赖 npm i [package] -S (-g) yarn (global) add [package]@[version]
加入开发依赖(打包时忽略) npm i [package] -D yarn add [package]@[version] --dev
更新
查询过期版本
npm outdated [package] yarn outdated [package]
npm outdated yarn outdated
更新版本
yarn upgrade [package]@[version]
卸载
npm uninstall [package] yarn remove [package]
重新安装所有依赖
rm -rf node_modules&&npm install yarn upgrade
3.安装/重新安装依赖项
初始化安装
npm install yarn install
4.运行脚本
yarn run [script] [<args>]
5.使用版本管理工具
6.持续集成
总结:
在yarn这位搅局者的出现,npm终于给了一次力,npm5和yarn区别已经不大,况且,yarn更新慢,对npm参数支持有限,目前推荐用yarn来管理版本,npm来跑命令
yarn和npm的对比,以及项目中使用方式的更多相关文章
- [yarn]yarn和npm的对比
一.简介 NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种: 允许用户从NPM服务器下载别人编写的第三方包到本地使用. 允许用户从NPM服 ...
- yarn和npm的对比以及yarn的使用
0--前言 为什么要使用yarn,如果你从事前端开发有些年头了,那你肯定对npm又爱又恨,爱就不说了,恨嘛,就是NPM经常奇慢和卡顿,这还能忍,经常各种错误就没法忍了,尤其是他人创建的项目,自己在安装 ...
- 像 npm 一样在 Andriod 项目中引入 Gradle 依赖
一.前言 作为 Android 开发人员,有没有羡慕过 node.js 的导入三方库的方式,node.js 社区为开发者准备了一个快速可靠的依赖管理库.这样的依赖管理库,让 node.js 导入依赖库 ...
- yarn和npm命令对比
- 华为软件开发云对比Jenkins-JavaWeb项目持续部署方式
一.前言:Jenkins介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成和持续部署变成可能. 本文 ...
- 项目中如何使用babel6详解
由于浏览器的版本和兼容性问题,很多es6,es7的新的方法都不能使用,等到可以使用的时候,可能已经过去了很多年.Babel可以把es6,es7的新代码编译成兼容绝大多数的主流浏览器的代码. 本篇文章主 ...
- node的包管理工具:yarn和npm
arn是Facebook发布的一款依赖管理工具,它比npm更快.更高效. NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题. 一.yarn官方网站: 英文官网:ht ...
- 发布自己的npm包、开源项目
背景:由于最近在做项目之余想做一些其他的事,所以东找找西找找的,最后决定写一个封装一些常用原型方法的NPM包,但不仅限于此.话不多说,说一下实践过程. 一.注册NPM及如何上传NPM包参考连接:htt ...
- yarn和npm
Yarn和npm命令对比 npm install === yarn npm install taco --save === yarn add taco npm uninstall taco --sav ...
随机推荐
- 轨迹条(Trackbar)
1.创建 createTrackbar(轨迹条名称,窗口名称,滑动条的初始位置,滑动条的最大值,回调函数XXX,不懂) 其中回调函数为 void XXX(滑动条的位置,用户数据)在c++中函数名为指向 ...
- String类的方法应用
String类的几个方法的应用示例: using System;using System.Collections.Generic;using System.Linq;using System.Text ...
- C# 获取系统SysWOW64的方法
string path = Environment.GetFolderPath(Environment.SpecialFolder.SystemX86); 64位系统获取的SysWOW64 ,32位获 ...
- "startIWDP": true
{ "platformName": "iOS", "platformVersion": "11.0", "au ...
- Beego 学习比较8:SQL语句
SQL语句 1> 常用的SQL语句 1->新增 insert into 表名(字段A,字段B,…) Values(字段A值,字段B值,…) 2->更新 update 表名 ...
- VB参考
Open 语句: 能够对文件输入/输出 (I/O). Open pathname For mode [Access access] [lock] As [#]filenumber [Len=recle ...
- Spring Cloud Sleuth 整合
引入Maven依赖 org.springframework.cloud spring-cloud-starter-sleuth 日志发生的变化 当应用ClassPath下存在org.springfre ...
- python的异常种类
AttributeError 访问一个对象没有的属性 比如:foo.x 但是foo没有x属性 IOError 输入/输出异常 基本是无法打开文件 ImportError 无法映入模块或包 路径或者名称 ...
- Nginx核心模块内置变量
本文根据Nginx官网整理了Nginx的ngx_http_core_module模块的内置变量,可与Apache做对比参考.随后做了一次测试观察各变量的值,并附上测试结果. 1.变量列表 $arg_n ...
- centos 7 新机器安装部署配置
首先卸载openjdk,安装jdk 1.查看java版本 [lambert@localhost ~]$ java -version openjdk version "1.8.0_102&qu ...