linuxsir首页 LinuxSir.Org | Linux、BSD、Solaris、Unix | 开源传万世,因有我参与欢迎您!
网站首页 | 设为首页 | 加入收藏
您所在的位置:主页 > Linux基础建设 >

从 npm 迁移

时间:2019-04-22  来源:未知  作者:admin666

对多数用户来说,从npm迁移的过程应该非常简单。Yarn和npm使用相同的package.json格式,而且Yarn可以从npm安装依赖包。

如果你打算在现有项目中尝试Yarn,只需执行:

yarn

Yarn将通过自己的解析算法来重新组织node_modules 目录,这个算法和node.js 模块解析算法是兼容的。

如果出错,请查阅issue列表,或者向Yarn issue tracker报告。

执行yarn命令或者yarn add <package>命令后,Yarn都会在项目根目录下生成yarn.lock文件。 你无需理解此文件的具体内容,但请记得将其提交到代码管理系统。 当其他开发者也从npm迁移到Yarn时,yarn.lock文件的存在会确保他们得到的依赖包与你的完全相同。

多数情况下,第一次执行yarn或者yarn add都会成功。 有些情况下,package.json文件里的信息不足以找出冗余依赖,Yarn安装依赖时采用的确定性算法就会导致依赖冲突。 这种情况常常出现在那些由于npm install执行出现问题,node_modules文件夹被多次删除,并重新安装的大型项目里。 如果发生这种情况,请在迁移到Yarn前尝试使用npm命令来让依赖的版本更明确。

项目的其他开发者可以继续使用npm,所以无需让每个人同时迁移。 使用yarn会让开发者得到完全相同的配置,而使用npm却未必,但这是npm的预期行为。

如果你之后发现Yarn并不适合自己,你无需任何特别修改就能迁移回npm。 如果项目里所有人都不再使用Yarn,就可以删除yarn.lock文件(但不是必须)。

如果项目目前使用了npm-shrinkwrap.json文件,请小心你可能会得到一组不同的依赖。 Yarn不支持npm shrinkwrap文件,因为文件里没有足够的信息来支撑Yarn的确定性算法。 所以如果项目正在使用 shrinkwrap 文件,那么团队成员同时迁移到Yarn可能会更容易一点。 只需删除现有的npm-shrinkwrap.json文件,并提交新创建的yarn.lock文件。

CLI 命令比较

npm (v5)Yarn
npm install yarn install
(不适用) yarn install --flat
(不适用) yarn install --har
npm install --no-package-lock yarn install --no-lockfile
(不适用) yarn install --pure-lockfile
npm install [package] yarn add [package]
npm install [package] --save-dev yarn add [package] --dev
(不适用) yarn add [package] --peer
npm install [package] --save-optional yarn add [package] --optional
npm install [package] --save-exact yarn add [package] --exact
(不适用) yarn add [package] --tilde
npm install [package] --global yarn global add [package]
npm update --global                   yarn global upgrade                    
npm rebuild yarn install --force
npm uninstall [package] yarn remove [package]
npm cac超级大乐透中奖规则he clean yarn cache clean [package]
rm -rf node_modules && npm install yarn upgrade
linux
友情链接
  • Ubuntu 19.04正式发布,生命周期仅9个月
  • 微软推出新编程语言Bosque,超越结构化程序设计
  • 红帽接手维护OpenJDK 8和OpenJDK 11
  • Facebook未经允许“无意中上传”了150万用户的电子邮件联系人
  • Edge Chromium将对管理员权限发出警告
  • URL贪吃蛇,考验手速的时候到了
  • Skywalking结束孵化,成为Apache基金会顶级项目
  • 红帽发布企业开源调查报告:战略重要性、数字化转型和创新 ...
  • 前Mozilla高管爆料,谷歌一直在破坏火狐
  • Zend Framework进入Linux基金会,重命名为Laminas
  • 开源编辑器Atom简化代码审查过程
  • Mozilla发起请愿书,希望Apple每月重置用户广告标识符
  • 不满支持论坛,安全人员连续公布三个WordPress插件漏洞
  • GStreamer 1.16 RC1发布,支持WebKit WPE源元素
  • 调查显示:机器学习/数据科学推动Python超越Java
  • Fedora 30正在接近最终版,但首先它有一些bug需要解决
  • Unigine Superposition 1.1 发布,增加Linux SteamVR支持
  • Dolphin和其他KDE实用程序开始在Linux上显示文件创建时间
  • Unity 2019.1 发布,Linux 与 Vulkan改进
  • Apache Flink 1.8.0 发布,提供最终的状态模式演化支持
  • Wine
  • 如何在Ubuntu 18.04及更高版本中安装经典Gnome应用程序菜单
  • Nouveau开发人员致力于OpenGL扩展以帮助逆向工程
  • 华为重新开始开发新的 EROFS 的 Linux 只读文件系统
  • Mesa 19.1将在两周内进入功能冻结,5月21日左右发布
  • Wayland正在开发一种颜色管理器校准协议
  • Ant Design 3.16.3 发布,企业级UI设计语言
  • DXVK 1.0.3 发布,用于转换Direct3D 10/11调用
  • Debian 10 “Buster”目前大约有150个关键的bug
  • Systemd支持MACsec以更好地保护以太网连接
  • CentOS庆祝15岁生日,为CentOS 8.0发布做准备
  • 游戏引擎Godot从Mozilla开源支持计划获得5万美元的奖励
  • Chrome OS 75在Linux应用程序中有完整的USB支持
  • Debian 10 Buster的安装程序达到RC阶段
  • Google Chrome 将添加可滚动选项卡功能
  • Reiser4引入了Linux 5.0内核
  • 大发888真人网址
  • 世界杯最新澳盘
  • 福彩3d图谜总汇
  • 福彩3d谜语
  • 天津时时彩
  • 单机棋牌游戏下载
  • 红足一世足球