脚本之家 服务器常用软件
微信 投稿 交流社区 在线工具

利用yarn代替npm管理前端项目模块依赖的方法详解

转载  发布时间:2017年09月04日 11:41:17   作者:志文工作室   我要评论

这篇文章主要给大家介绍了关于利用yarn代替npm管理前端项目模块依赖的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。

本文主要给大家介绍了关于yarn代替npm管理前端项目模块依赖的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

什么是 yarn?

简单来说,yarn 是一个与 npm 功能相同的工具,用于前端项目的依赖管理。在使用 npm 的项目中,使用 npm 命令的地方都可以使用 yran 来代替。

为什么要使用 yarn 替代 npm 呢?yarn 相对 npm 来说,主要的特点有:

  • 离线、并行安装:依赖并行安装,缓存已下载过的依赖并优先使用,各种优化使得安装依赖速度显著提升
  • 确定性:默认生成 yarn.lock 文件,可以保证各开发人员开发安装依赖的目录具有一致性
  • more…

好吧,其实 npm 也在不断的优化改进中。但 yarn 确实有很多亮点,至少当前是非常值得你去使用的。

yarn 使用快速上手

安装

虽然安装 yarn 可以不依赖 npm,但这里还是建议你使用 npm 来安装吧,快速而简洁:

npm i -g yarn

在项目中使用

首次初始化项目时执行,在每次项目启动/构建之前,也都应执行一次,以保证本地依赖得到及时更新。

该命令会检查 package.json 和 yarn.lock 文件中的依赖,当有其内容更新,会进行依赖更新安装。

yarn <install>

依赖更新。当你希望更新依赖模块到其最新版本时执行该命令。

yarn upgrade

yarn 常用命令

开始新项目

yarn init

添加依赖包

yarn add [package]
yarn add [package]@[version]
yarn add [package]@[tag]

升级依赖包

yarn upgrade [package]
yarn upgrade [package]@[version]
yarn upgrade [package]@[tag]

移除依赖包

yarn remove [package]

安装项目的全部依赖

yarn

或者

yarn install

yarn 使用实践建议

我们选择 yarn 的主要原因是依赖安装速度快,默认生成的 yarn.lock 会保证所有成员的模块依赖目录能够很好的保持一致。

yarn install 和 yarn upgrade 的执行逻辑,可以让你可以很清晰的管理本地依赖的版本更新时机,又能很好的让所有开发人员的本地依赖保持一致性。

使用 npm install 则有些乱,当你不想写死版本号依赖时,它总会安装依赖包最新可用的版本,但这在有时候并不是你想要的。

在 yarn 之前,我们使用的是 npm+淘宝仓库方案,也会使用 cnpm。在国内,cnpm 的依赖安装速度比 yarn 还要快,但 cnpm 在 windows 下通过创建链接引用的方式管理包依赖,可能会带来一些问题。

现在我们会默认使用淘宝仓库,使用 npm 管理全局依赖,使用 yarn 管理具体项目内的依赖。

在一个新的项目中使用 yarn,我们会这么来做:

  • 写好 package.json,写入初始的第三方依赖
  • 执行 yarn 命令,初始化安装项目依赖,生成 yarn.lock 文件
  • 后续通过执行 yarn add xxx 添加更多需要的依赖(也可直接在 package.json 文件中写入)
  • 当确定需要更新依赖模块到其最新版本时,执行 yarn upgrade 命令
  • 配置项目启动命令执行前,先执行 yarn 命令,以保证当 yarn.lock 被更新时,本地依赖也及时得到更新。例如,在 package.json 的 script 部分中配置 start 命令: "start": "yarn && yarn run build:dev"

你是如何来使用 yarn 的呢?欢迎分享你的经验。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

相关参考

npm https://docs.npmjs.com
yarn https://yarnpkg.com

  • yarn
  • npm
  • 模块依赖

相关文章

  • Nodejs初级阶段之express

    这篇文章主要介绍了Nodejs初级阶段之express的相关资料,需要的朋友可以参考下
    2015-11-11
  • Node.js获取前端ajax提交的request信息

    这篇文章主要为大家详细介绍了Node.js获取前端ajax提交的request信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Mongoose中document与object的区别示例详解

    这篇文章主要给大家介绍了关于Mongoose中document与object区别的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-09-09
  • nodeJs爬虫获取数据简单实现代码

    这篇文章主要为大家详细介绍了nodeJs爬虫获取数据简单实现代码,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 详解如何让Express支持async/await

    本篇文章主要介绍了详解如何让Express支持async/await,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • Node.js实现JS文件合并小工具

    这篇文章主要介绍了Node.js实现JS文件合并小工具的相关资料,需要的朋友可以参考下
    2016-02-02
  • Express使用html模板的详细代码

    本篇文章主要介绍了Express使用html模板的详细代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Node.js使用Angular简单示例

    这篇文章主要介绍了Node.js使用Angular简单示例,如何在Node.js项目中引入AngularJS,这次提供一个非常简单的示例,演示AngularJS里的指令、数据绑定、服务等内容。感兴趣的小伙伴们可以参考一下
    2018-05-05
  • nodejs事件的监听与触发的理解分析

    这篇文章主要介绍了nodejs事件的监听与触发的理解分析,以实例形式对比分析了nodejs与jQuery关于事件监听的实用技巧,有助于加深对nodejs的理解,需要的朋友可以参考下
    2015-02-02
  • 详解使用vscode+es6写nodejs服务端调试配置

    本篇文章主要介绍了使用vscode+es6写nodejs服务端调试配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09

最新评论