yarn的学习-2-从 npm 迁移到 yarn-包管理工具
从npm处迁移过来多许多用户来说是一个相对简单的过程。yarn能想npm一样定制相同的package.json,并能够从npm仓库下载任意的包
如果你想要在已存在的npm项目中使用yarn,运行yarn即可,其默认运行的是yarn install:
yarn
这将使用Yarn的与npm的分辨率算法兼容( node.js module resolution algorithm.)的分辨率算法去部署node_modules文件夹。
如果出现错误,请查看已存在的问题或将其报告给 Yarn issue tracker
当你运行yarn 或 yarn add <package>时,将会在包的根目录下生成yarn.lock文档。你不需要去读或者理解这个文档,只要在源码控制中进行检查即可。当其他人使用yarn来替代npm时,文档将保证他们精确地得到与你相同的依赖yarn.lock
在大多数例子中,第一次运行yarn or yarn add就能成功。但是在一些例子中,package.json中的信息不够明确去排除依赖,且会与yarn选择依赖的明确方式产生冲突。这种情况经常发生在一些大项目中,npm install经常失败,导致开发人员要经常地移除node_modules文件夹去从头开始构建。如果这个情况发生,尽量在转换成yarn之前使用npm去使依赖的版本更加明确
在yarn的1.7.0版本之后,能够使用yarn去import npm生成给yarn的package-lock.json来解决上面的问题
这个项目的其他开发人员还是能够继续使用npm,不需要让这个项目的每个人都同时转换。使用yarn的开发人员都会得到与他人相同的配置,使用npm的可能会有稍微的不同,这是npm有意导致的。
之后,如果你认为yarn不适合你,你仍能够回去使用npm,并不需要做任何的变化。如果这个项目没有人需要使用yarn,那么你就可以删除你的yarn.lock文档,但是这不是必须要做的。
如果你正使用npm-shrinkwrap.json文档,要注意你可能会导致一系列不同的依赖。yarn不支持npm-shrinkwrap.json,因为它没有足够的信息去支持yarn更多的确定性算法。如果你正在使用npm-shrinkwrap.json,那么将这个项目的所有人同时转成使用yarn将更加容易。只要将npm-shrinkwrap.json删除并检查新创建的yarn.lock即可。
CLI commands comparison 两者的cli对比:
| npm (v5) | Yarn |
|---|---|
npm install |
yarn install |
| (N/A) | yarn install --flat |
| (N/A) | yarn install --har |
npm install --no-package-lock |
yarn install --no-lockfile |
| (N/A) | yarn install --pure-lockfile |
npm install [package] |
yarn add [package] |
npm install [package] --save-dev |
yarn add [package] --dev |
| (N/A) | yarn add [package] --peer |
npm install [package] --save-optional |
yarn add [package] --optional |
npm install [package] --save-exact |
yarn add [package] --exact |
| (N/A) | yarn add [package] --tilde |
npm install [package] --global |
yarn global add [package] |
npm update --global |
yarn global upgrade |
npm rebuild |
yarn add --force |
npm uninstall [package] |
yarn remove [package] |
npm cache clean |
yarn cache clean [package] |
rm -rf node_modules && npm install |
yarn upgrade |
npm version major |
yarn version --major |
npm version minor |
yarn version --minor |
npm version patch |
yarn version --patch |
yarn的学习-2-从 npm 迁移到 yarn-包管理工具的更多相关文章
- Python学习笔记(十二)—Python3中pip包管理工具的安装【转】
本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- 前端包管理工具 yarn
yarn 是一个 与 npm 类似的 前端包管理工具 安装 windows 要去官网下载 (一定要去官网下载 .mis 文件进行安装) 用npm 或者 cnpm 也能安装 但是这种安装 有缺 ...
- node的包管理工具:yarn和npm
arn是Facebook发布的一款依赖管理工具,它比npm更快.更高效. NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题. 一.yarn官方网站: 英文官网:ht ...
- 主流包管理工具npm、yarn、cnpm、pnpm之间的区别与联系——原理篇
接触 node 之后,一直使用npm包管理工具, cnpm 一开始会用一些,但是并没有觉得比 npm 快得多,使用 cnpm 的时候还经常安装不成功,只能再用 npm 安装一遍,渐渐的就弃用了 cnp ...
- 包管理工具(npm、yarn)
npm包管理工具 1. npm的包安装分为本地安装(local).全局安装(global)两种,从敲的命令行来看,差别只是有没有-g而已. 2. 这两种安装方式的区别: 本地安装(安装在命令行运行所在 ...
- npm 和 yarn 前端包管理工具
前言 前端开发逐渐工程化,npm作为我们的依赖管理工具起到十分重要的作用,本文就来总结一下 npm 和 yarn 相关知识点. 正文 1.什么是npm (1)node的包管理器(node packag ...
- 包管理工具-yarn
今天知道了一个新的包管理工具叫yarn,总结如下: 如果你知道npm的使用过程,那么yarn你就觉着相见恨晚呐...... npm存在的问题: >安装的时候无法保证速度的一致性 >安全问题 ...
- Yarn 包管理工具
已经安装的 yarn add vue vue@2.2.5 yarn add element-ui -S yarn add bootstrap@4.0.0-alpha.6 --save yarn ...
- NodeJS包管理工具——npm入门
如今每个语言体系中都有一个包管理工具,PHP的Composer,Ruby的gem,Python的pip,Java的Maven……当然还有Node.js的npm.有的人会奇怪为何要引入又一个新东西来让我 ...
- Node.js权威指南 (4) - 模块与npm包管理工具
4.1 核心模块与文件模块 / 574.2 从模块外部访问模块内的成员 / 58 4.2.1 使用exports对象 / 58 4.2.2 将模块定义为类 / 58 4.2.3 为模块类定义类变量或类 ...
随机推荐
- Java中==规则
普通对象== 一般说来,java中的==指的是比较两个对象的内存地址是否相同.同时,在java中,一旦使用new关键字,则说明在内存中开辟了一段空间,用于存储对象. 假设我们有一个Person类,请看 ...
- SVN问题之——org.apache.subversion.javahl.ClientException: Attempted to lock an already-locked dir(网摘文)
一.问题描述 今天在 Eclipse 中用 SVN 插件提交代码时遇到 org.apache.subversion.javahl.ClientException: Attempted to lock ...
- 在JAVA中封装JSONUtil工具类及使用
在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...
- 如何调试JDK源代码并查看局部变量值
如下图: 按F5进入String.startsWith,如下: 点“Edit Source Lookup Path” 附加源代码,如下图: 附加上源代码后如下: 可以看到,当鼠标放在“prefix”上 ...
- Android - AMS源码分析
Android核心分析之AMS App和AMS(SystemServer进程)还有zygote进程分属于三个独立的进程 App与AMS通过Binder进行IPC通信,AMS(SystemServer进 ...
- C#生成二维码,裁切边框
使用google zxing生成的二维码带有白色边框,显示在报告(使用Crystal Report 水晶报表)上时,由于空间有限造成二维码过小难以扫描识别. 通过将白色边框裁切掉,可以在有限的空间内最 ...
- EF DataFirst修改数据类型
在做软件的时候我们可能会遇到这样的问题,就是在使用EF的时候,有时候精度不一样, 我们用整数来计算肯定是比浮点数来得快的,但我在MySQL里面存储的数据类型是decimal的,我生成EF后, 里面的数 ...
- Python爬虫入门教程石家庄链家租房数据抓取
1. 写在前面 这篇博客爬取了链家网的租房信息,爬取到的数据在后面的博客中可以作为一些数据分析的素材.我们需要爬取的网址为:https://sjz.lianjia.com/zufang/ 2. 分析网 ...
- SpringMVC注解集合
@RequestMapper注解 绑定请求路径与处理方法例如: @RequestMapping("login.do") public String showLogin() { .. ...
- jQuery操作table数据上移、下移和置顶
jQuery 操作table中的tr换行的步骤如下: 1.获取当前tr var $tr = $(this).parents("tr"); 2.移动tr //上移 $tr.prev( ...